1    package com.instantbank.collections.util.ejb;
2    
3    import java.sql.ResultSet;
4    import java.sql.SQLException;
5    import java.sql.Statement;
6    import javax.ejb.CreateException;
7    import javax.ejb.SessionBean;
8    import javax.ejb.SessionContext;
9    import javax.naming.NamingException;
10   import com.instantbank.collections.util.DataAccess;
11   
12   public class UniqueIDServicesBean
13       implements SessionBean {
14     private long maxID = -1;
15     private long minID = -1;
16     private int bufferSize;
17   
18   
19     public UniqueIDServicesBean() { }
20   
21   
22     public void ejbCreate() throws CreateException { }
23   
24   
25     public void ejbActivate() { }
26   
27   
28     public void ejbPassivate() { }
29   
30   
31     public void ejbRemove() { }
32   
33   
34     public long getMaxID() {
35       return maxID;
36     }
37   
38   
39     public long getMinID() {
40       return minID;
41     }
42   
43   
44     public void getNextIDSet() throws SQLException, NamingException {
45       DataAccess da = new DataAccess();
46       ResultSet rs = null;
47       Statement st = null;
48   
49       da.connect();
50       st = da.getConnection().createStatement();
51       rs = st.executeQuery("SELECT increment_by FROM user_sequences WHERE SEQUENCE_NAME = 'SEQ_ID_GENERATOR'");
52       rs.next();
53       bufferSize = rs.getInt(1);
54       rs.close();
55       rs = st.executeQuery("SELECT seq_id_generator.nextval FROM dual");
56       rs.next();
57       minID = rs.getLong(1);
58       rs.close();
59       maxID = (minID + bufferSize - 1);
60       st.close();
61       da.disconnect();
62     }
63   
64   
65     public void setSessionContext(SessionContext ctx) { }
66   }
67