1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 1997, 2010 Oracle and/or its affiliates.  All rights reserved.
5  *
6  */
7 
8 package je;
9 
10 import java.io.File;
11 import java.io.IOException;
12 
13 import com.sleepycat.je.Database;
14 import com.sleepycat.je.DatabaseConfig;
15 import com.sleepycat.je.DatabaseEntry;
16 import com.sleepycat.je.DatabaseException;
17 import com.sleepycat.je.Environment;
18 import com.sleepycat.je.EnvironmentConfig;
19 import com.sleepycat.je.Sequence;
20 import com.sleepycat.je.SequenceConfig;
21 
22 public class SequenceExample {
23     private static final int EXIT_SUCCESS = 0;
24     private static final int EXIT_FAILURE = 1;
25     private static final String DB_NAME = "sequence.db";
26     private static final String KEY_NAME = "my_sequence";
27 
SequenceExample()28     public SequenceExample() {
29     }
30 
usage()31     public static void usage() {
32         System.out.println("usage: java " +
33                            "je.SequenceExample " +
34                            "<dbEnvHomeDirectory>");
35         System.exit(EXIT_FAILURE);
36     }
37 
main(String[] argv)38     public static void main(String[] argv) {
39 
40         if (argv.length != 1) {
41             usage();
42             return;
43         }
44         File envHomeDirectory = new File(argv[0]);
45 
46         try {
47             SequenceExample app = new SequenceExample();
48             app.run(envHomeDirectory);
49         } catch (Exception e) {
50             e.printStackTrace();
51             System.exit(EXIT_FAILURE);
52         }
53         System.exit(EXIT_SUCCESS);
54     }
55 
run(File envHomeDirectory)56     public void run(File envHomeDirectory)
57         throws DatabaseException, IOException {
58 
59         /* Create the environment object. */
60         EnvironmentConfig envConfig = new EnvironmentConfig();
61         envConfig.setAllowCreate(true);
62         Environment env = new Environment(envHomeDirectory, envConfig);
63 
64         /* Create the database object. */
65         DatabaseConfig dbConfig = new DatabaseConfig();
66         dbConfig.setAllowCreate(true);
67         Database db = env.openDatabase(null, DB_NAME, dbConfig);
68 
69         /* Create the sequence oject. */
70         SequenceConfig config = new SequenceConfig();
71         config.setAllowCreate(true);
72         DatabaseEntry key =
73             new DatabaseEntry(KEY_NAME.getBytes("UTF-8"));
74         Sequence seq = db.openSequence(null, key, config);
75 
76         /* Allocate a few sequence numbers. */
77         for (int i = 0; i < 10; i++) {
78             long seqnum = seq.get(null, 1);
79             System.out.println("Got sequence number: " + seqnum);
80         }
81 
82         /* Close all. */
83         seq.close();
84         db.close();
85         env.close();
86     }
87 }
88