summaryrefslogtreecommitdiff
path: root/lang/java/libdb_java
diff options
context:
space:
mode:
Diffstat (limited to 'lang/java/libdb_java')
-rw-r--r--lang/java/libdb_java/db.i223
-rw-r--r--lang/java/libdb_java/db_java.i29
-rw-r--r--lang/java/libdb_java/db_java_wrap.c1376
-rw-r--r--lang/java/libdb_java/java_callbacks.i65
-rw-r--r--lang/java/libdb_java/java_except.i4
-rw-r--r--lang/java/libdb_java/java_stat_auto.c22
-rw-r--r--lang/java/libdb_java/java_typemaps.i212
-rw-r--r--lang/java/libdb_java/java_util.i65
8 files changed, 1893 insertions, 103 deletions
diff --git a/lang/java/libdb_java/db.i b/lang/java/libdb_java/db.i
index 0199a167..75ecf080 100644
--- a/lang/java/libdb_java/db.i
+++ b/lang/java/libdb_java/db.i
@@ -18,6 +18,7 @@
typedef unsigned char u_int8_t;
typedef long int32_t;
+typedef long long db_off_t;
typedef long long db_seq_t;
typedef long long pid_t;
#ifndef SWIGJAVA
@@ -43,6 +44,7 @@ struct DbLsn; typedef struct DbLsn DB_LSN;
struct DbMpoolFile; typedef struct DbMpoolFile DB_MPOOLFILE;
struct DbSequence; typedef struct Db DB_SEQUENCE;
struct DbSite; typedef struct DbSite DB_SITE;
+struct DbStream; typedef struct DbStream DB_STREAM;
struct DbTxn; typedef struct DbTxn DB_TXN;
/* Methods that allocate new objects */
@@ -138,6 +140,24 @@ struct Db
return ret;
}
+ const char *get_blob_dir() {
+ const char *ret;
+ errno = self->get_blob_dir(self, &ret);
+ return ret;
+ }
+
+ const char *get_blob_sub_dir() {
+ const char *ret;
+ errno = self->get_blob_sub_dir(self, &ret);
+ return ret;
+ }
+
+ u_int32_t get_blob_threshold () {
+ u_int32_t ret = 0;
+ errno = self->get_blob_threshold(self, &ret);
+ return ret;
+ }
+
int_bool get_byteswapped() {
int ret = 0;
errno = self->get_byteswapped(self, &ret);
@@ -282,9 +302,13 @@ struct Db
return ret;
}
- DBT *get_partition_keys() {
- DBT *ret = NULL;
- errno = self->get_partition_keys(self, NULL, &ret);
+ /* __dbt_arr is used to differentiate from DBT * as a return value. */
+ struct __dbt_arr get_partition_keys() {
+ struct __dbt_arr ret;
+ u_int32_t len;
+ errno = self->get_partition_keys(self, &len, &ret.arr_ptr);
+ ret.len = (int)len;
+ ret.len--;
return ret;
}
@@ -383,8 +407,16 @@ struct Db
return self->set_append_recno(self, db_append_recno_fcn);
}
+ db_ret_t set_blob_dir(const char *dir) {
+ return self->set_blob_dir(self, dir);
+ }
+
+ db_ret_t set_blob_threshold(u_int32_t bytes, u_int32_t flags) {
+ return self->set_blob_threshold(self, bytes, flags);
+ }
+
db_ret_t set_bt_compare(
- int (*bt_compare_fcn)(DB *, const DBT *, const DBT *)) {
+ int (*bt_compare_fcn)(DB *, const DBT *, const DBT *, size_t *)) {
return self->set_bt_compare(self, bt_compare_fcn);
}
@@ -417,7 +449,7 @@ struct Db
}
db_ret_t set_dup_compare(
- int (*dup_compare_fcn)(DB *, const DBT *, const DBT *)) {
+ int (*dup_compare_fcn)(DB *, const DBT *, const DBT *, size_t *)) {
return self->set_dup_compare(self, dup_compare_fcn);
}
@@ -457,7 +489,7 @@ struct Db
}
db_ret_t set_h_compare(
- int (*h_compare_fcn)(DB *, const DBT *, const DBT *)) {
+ int (*h_compare_fcn)(DB *, const DBT *, const DBT *, size_t *)) {
return self->set_h_compare(self, h_compare_fcn);
}
@@ -488,6 +520,33 @@ struct Db
}
#endif /* SWIGJAVA */
+ int set_msgfile(const char *msgfile) {
+ int ret;
+ FILE *fmsg;
+ ret = 0;
+ fmsg = NULL;
+ self->get_msgfile(self, &fmsg);
+ if (fmsg != NULL && fmsg != stdout && fmsg != stderr) {
+ fclose(fmsg);
+ fmsg = NULL;
+ }
+ if (strcmp(msgfile, "") == 0 || msgfile == NULL)
+ self->set_msgfile(self, NULL);
+ else if (strcmp(msgfile, "stdout") == 0)
+ self->set_msgfile(self, stdout);
+ else if (strcmp(msgfile, "stderr") == 0)
+ self->set_msgfile(self, stderr);
+ else {
+ fmsg = fopen(msgfile, "a");
+ if (fmsg != NULL) {
+ self->set_msgfile(self, fmsg);
+ }
+ else
+ ret = 1;
+ }
+ return ret;
+ }
+
db_ret_t set_pagesize(u_int32_t pagesize) {
return self->set_pagesize(self, pagesize);
}
@@ -542,6 +601,10 @@ struct Db
return statp;
}
+ int stat_print(u_int32_t flags) {
+ return self->stat_print(self, flags);
+ }
+
JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV)
db_ret_t sync(u_int32_t flags) {
return self->sync(self, flags);
@@ -601,6 +664,13 @@ struct Dbc
return count;
}
+ JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DB2JDBENV)
+ DB_STREAM *db_stream(u_int32_t flags) {
+ DB_STREAM *dbsp = NULL;
+ errno = self->db_stream(self, &dbsp, flags);
+ return dbsp;
+ }
+
JAVA_EXCEPT(DB_RETOK_DBCDEL, DBC2JDBENV)
int del(u_int32_t flags) {
return self->del(self, flags);
@@ -737,6 +807,18 @@ struct DbEnv
}
JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV)
+ const char *get_blob_dir() {
+ const char *ret;
+ errno = self->get_blob_dir(self, &ret);
+ return ret;
+ }
+
+ u_int32_t get_blob_threshold() {
+ u_int32_t ret;
+ errno = self->get_blob_threshold(self, &ret);
+ return ret;
+ }
+
const char **get_data_dirs() {
const char **ret;
errno = self->get_data_dirs(self, &ret);
@@ -826,6 +908,14 @@ struct DbEnv
}
JAVA_EXCEPT(DB_RETOK_STD, JDBENV)
+ db_ret_t set_blob_dir(const char *dir) {
+ return self->set_blob_dir(self, dir);
+ }
+
+ db_ret_t set_blob_threshold(u_int32_t bytes, u_int32_t flags) {
+ return self->set_blob_threshold(self, bytes, flags);
+ }
+
db_ret_t set_cachesize(jlong bytes, int ncache) {
return self->set_cachesize(self,
(u_int32_t)(bytes / GIGABYTE),
@@ -904,6 +994,33 @@ struct DbEnv
self->set_msgcall(self, db_msgcall_fcn);
}
+ int set_msgfile(const char *msgfile) {
+ int ret;
+ FILE *fmsg;
+ ret = 0;
+ fmsg = NULL;
+ self->get_msgfile(self, &fmsg);
+ if (fmsg != NULL && fmsg != stdout && fmsg != stderr) {
+ fclose(fmsg);
+ fmsg = NULL;
+ }
+ if (strcmp(msgfile, "") == 0 || msgfile == NULL)
+ self->set_msgfile(self, NULL);
+ else if (strcmp(msgfile, "stdout") == 0)
+ self->set_msgfile(self, stdout);
+ else if (strcmp(msgfile, "stderr") == 0)
+ self->set_msgfile(self, stderr);
+ else {
+ fmsg = fopen(msgfile, "a");
+ if (fmsg != NULL) {
+ self->set_msgfile(self, fmsg);
+ }
+ else
+ ret = 1;
+ }
+ return ret;
+ }
+
JAVA_EXCEPT(DB_RETOK_STD, JDBENV)
db_ret_t set_paniccall(void (*db_panic_fcn)(DB_ENV *, int)) {
return self->set_paniccall(self, db_panic_fcn);
@@ -1043,6 +1160,10 @@ struct DbEnv
return statp;
}
+ int lock_stat_print(u_int32_t flags) {
+ return self->lock_stat_print(self, flags);
+ }
+
#ifndef SWIGJAVA
/* For Java, this is defined in native code */
db_ret_t lock_vec(u_int32_t locker, u_int32_t flags, DB_LOCKREQ *list,
@@ -1187,6 +1308,10 @@ struct DbEnv
return sp;
}
+ int log_stat_print(u_int32_t flags) {
+ return self->log_stat_print(self, flags);
+ }
+
int log_verify(const char *envhome, u_int32_t cachesz,
const char *dbfile, const char *dbname,
time_t stime, time_t etime,
@@ -1289,6 +1414,10 @@ struct DbEnv
return mp_stat;
}
+ int memp_stat_print(u_int32_t flags) {
+ return self->memp_stat_print(self, flags);
+ }
+
DB_MPOOL_FSTAT **memp_fstat(u_int32_t flags) {
DB_MPOOL_FSTAT **mp_fstat = NULL;
errno = self->memp_stat(self, NULL, &mp_fstat, flags);
@@ -1366,6 +1495,10 @@ struct DbEnv
return statp;
}
+ int mutex_stat_print(u_int32_t flags) {
+ return self->mutex_stat_print(self, flags);
+ }
+
/* Transaction functions */
u_int32_t get_tx_max() {
u_int32_t ret;
@@ -1385,6 +1518,10 @@ struct DbEnv
return ret;
}
+ int stat_print(u_int32_t flags) {
+ return self->stat_print(self, flags);
+ }
+
JAVA_EXCEPT(DB_RETOK_TXNAPPLIED, JDBENV)
int txn_applied(DB_TXN_TOKEN *token, u_int32_t maxwait, u_int32_t flags) {
return self->txn_applied(self, token, maxwait, flags);
@@ -1429,6 +1566,10 @@ struct DbEnv
return statp;
}
+ int txn_stat_print(u_int32_t flags) {
+ return self->txn_stat_print(self, flags);
+ }
+
/* Replication functions */
jlong rep_get_limit() {
u_int32_t gbytes, bytes;
@@ -1496,6 +1637,10 @@ struct DbEnv
return statp;
}
+ int rep_stat_print(u_int32_t flags) {
+ return self->rep_stat_print(self, flags);
+ }
+
JAVA_EXCEPT(DB_RETOK_STD, JDBENV)
db_ret_t rep_set_limit(jlong bytes) {
return self->rep_set_limit(self,
@@ -1533,6 +1678,11 @@ struct DbEnv
return self->rep_set_transport(self, envid, send);
}
+ db_ret_t rep_set_view(int (*rep_view_fcn)(DB_ENV *,
+ const char *, int *, u_int32_t)) {
+ return self->rep_set_view(self, rep_view_fcn);
+ }
+
/* Advanced replication functions. */
JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV)
u_int32_t rep_get_nsites() {
@@ -1573,6 +1723,13 @@ struct DbEnv
return ret;
}
+ JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV)
+ jlong repmgr_get_incoming_queue_max() {
+ u_int32_t gbytes = 0, bytes = 0;
+ errno = self->repmgr_get_incoming_queue_max(self, &gbytes, &bytes);
+ return (jlong)gbytes * GIGABYTE + bytes;
+ }
+
JAVA_EXCEPT_ERRNO(DB_RETOK_REPMGR_LOCALSITE, JDBENV)
DB_SITE *repmgr_local_site() {
DB_SITE *site = NULL;
@@ -1585,6 +1742,13 @@ struct DbEnv
return self->repmgr_set_ack_policy(self, policy);
}
+ JAVA_EXCEPT(DB_RETOK_STD, JDBENV)
+ db_ret_t repmgr_set_incoming_queue_max(jlong bytes) {
+ return self->repmgr_set_incoming_queue_max(self,
+ (u_int32_t)(bytes / GIGABYTE),
+ (u_int32_t)(bytes % GIGABYTE));
+ }
+
JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV)
DB_SITE *repmgr_site(const char *host, u_int port) {
DB_SITE *site = NULL;
@@ -1624,9 +1788,18 @@ struct DbEnv
return statp;
}
+ int repmgr_stat_print(u_int32_t flags) {
+ return self->repmgr_stat_print(self, flags);
+ }
+
u_int32_t get_backup_config(u_int32_t config_type) {
u_int32_t ret;
errno = self->get_backup_config(self, (DB_BACKUP_CONFIG)config_type, &ret);
+ if (errno == EINVAL) {
+ errno = 0;
+ ret = 0;
+ }
+
return ret;
}
@@ -1812,14 +1985,14 @@ struct DbSequence
}
JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL)
- db_seq_t get(DB_TXN *txnid, int32_t delta, u_int32_t flags) {
+ db_seq_t get(DB_TXN *txnid, u_int32_t delta, u_int32_t flags) {
db_seq_t ret = 0;
errno = self->get(self, txnid, delta, &ret, flags);
return ret;
}
- int32_t get_cachesize() {
- int32_t ret = 0;
+ u_int32_t get_cachesize() {
+ u_int32_t ret = 0;
errno = self->get_cachesize(self, &ret);
return ret;
}
@@ -1867,7 +2040,7 @@ struct DbSequence
return self->remove(self, txnid, flags);
}
- db_ret_t set_cachesize(int32_t size) {
+ db_ret_t set_cachesize(u_int32_t size) {
return self->set_cachesize(self, size);
}
@@ -1885,6 +2058,10 @@ struct DbSequence
errno = self->stat(self, &ret, flags);
return ret;
}
+
+ int stat_print(u_int32_t flags) {
+ return self->stat_print(self, flags);
+ }
}
};
@@ -1926,6 +2103,32 @@ struct DbSite
}
};
+struct DbStream
+{
+%extend {
+ JAVA_EXCEPT(DB_RETOK_STD, NULL)
+ db_ret_t close(u_int32_t flags) {
+ return self->close(self, flags);
+ }
+
+ int read(DBT *data, db_off_t offset, u_int32_t size, u_int32_t flags) {
+ return self->read(self, data, offset, size, flags);
+ }
+
+ JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL)
+ db_off_t size(u_int32_t flags) {
+ db_off_t ret = 0;
+ errno = self->size(self, &ret, flags);
+ return ret;
+ }
+
+ JAVA_EXCEPT(DB_RETOK_STD, NULL)
+ int write(DBT *data, db_off_t offset, u_int32_t flags) {
+ return self->write(self, data, offset, flags);
+ }
+}
+};
+
struct DbTxn
{
%extend {
diff --git a/lang/java/libdb_java/db_java.i b/lang/java/libdb_java/db_java.i
index f47029b0..1d380a0c 100644
--- a/lang/java/libdb_java/db_java.i
+++ b/lang/java/libdb_java/db_java.i
@@ -76,6 +76,7 @@ import java.util.Comparator;
private String errpfx;
private MessageHandler message_handler;
private PanicHandler panic_handler;
+ private ReplicationViewHandler rep_view_handler;
private ReplicationManagerMessageDispatch repmgr_msg_dispatch_handler;
private ReplicationTransport rep_transport_handler;
private java.io.OutputStream error_stream;
@@ -133,6 +134,10 @@ import java.util.Comparator;
event_notify_handler.handlePanicEvent();
}
+ private final void handle_rep_autotakeover_failed_event_notify() {
+ event_notify_handler.handleRepAutoTakeoverFailedEvent();
+ }
+
private final void handle_rep_client_event_notify() {
event_notify_handler.handleRepClientEvent();
}
@@ -161,9 +166,13 @@ import java.util.Comparator;
event_notify_handler.handleRepElectionFailedEvent();
}
- private final void handle_rep_init_done_event_notify() {
- event_notify_handler.handleRepInitDoneEvent();
- }
+ private final void handle_rep_init_done_event_notify() {
+ event_notify_handler.handleRepInitDoneEvent();
+ }
+
+ private final void handle_rep_inqueue_full_event_notify() {
+ event_notify_handler.handleRepInQueueFullEvent();
+ }
private final void handle_rep_join_failure_event_notify() {
event_notify_handler.handleRepJoinFailureEvent();
@@ -281,6 +290,10 @@ import java.util.Comparator;
return panic_handler;
}
+ public final boolean handle_rep_view(String name, int flags) {
+ return rep_view_handler.partial_view(wrapper, name, flags);
+ }
+
private final int handle_rep_transport(DatabaseEntry control,
DatabaseEntry rec,
LogSequenceNumber lsn,
@@ -726,6 +739,16 @@ import java.util.Comparator;
}
%}
+%typemap(javacode) struct DbStream %{
+ public synchronized void close(int flags) throws DatabaseException {
+ try {
+ close0(flags);
+ } finally {
+ swigCPtr = 0;
+ }
+ }
+%}
+
%typemap(javacode) struct DbChannel %{
public synchronized void close(int flags) throws DatabaseException {
try {
diff --git a/lang/java/libdb_java/db_java_wrap.c b/lang/java/libdb_java/db_java_wrap.c
index dcaac8e0..976a9d8d 100644
--- a/lang/java/libdb_java/db_java_wrap.c
+++ b/lang/java/libdb_java/db_java_wrap.c
@@ -1,12 +1,12 @@
#include "db_config.h"
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
- *
- * This file is not intended to be easily readable and contains a number of
+ * Version 2.0.12
+ *
+ * This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG
- * interface file instead.
+ * changes to this file unless you know what you are doing--modify the SWIG
+ * interface file instead.
* ----------------------------------------------------------------------------- */
#define SWIGJAVA
@@ -42,28 +42,28 @@
#ifndef SWIGUNUSED
# if defined(__GNUC__)
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-# define SWIGUNUSED __attribute__ ((__unused__))
+# define SWIGUNUSED __attribute__ ((__unused__))
# else
# define SWIGUNUSED
# endif
# elif defined(__ICC)
-# define SWIGUNUSED __attribute__ ((__unused__))
+# define SWIGUNUSED __attribute__ ((__unused__))
# else
-# define SWIGUNUSED
+# define SWIGUNUSED
# endif
#endif
#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
# pragma warning(disable : 4505) /* unreferenced local function has been removed */
-# endif
+# endif
#endif
#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
# define SWIGUNUSEDPARM(p)
# else
-# define SWIGUNUSEDPARM(p) p SWIGUNUSED
+# define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif
@@ -106,7 +106,7 @@
# define SWIGSTDCALL __stdcall
# else
# define SWIGSTDCALL
-# endif
+# endif
#endif
/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
@@ -215,7 +215,7 @@ static int __dbj_throw(JNIEnv *jenv,
static JavaVM *javavm;
static jclass db_class, dbc_class, dbenv_class, dbt_class, dblsn_class;
-static jclass dbpreplist_class, dbtxn_class;
+static jclass dbpreplist_class, dbstream_class, dbtxn_class;
static jclass keyrange_class;
static jclass bt_stat_class, compact_class, h_stat_class, heap_stat_class;
static jclass lock_stat_class, log_stat_class, mpool_stat_class, mpool_fstat_class;
@@ -225,7 +225,7 @@ static jclass seq_stat_class, txn_stat_class;
static jclass txn_active_class;
static jclass lock_class, lockreq_class;
static jclass dbex_class, deadex_class, heapfullex_class, lockex_class, memex_class;
-static jclass repdupmasterex_class, rephandledeadex_class;
+static jclass metachkfailex_class, repdupmasterex_class, rephandledeadex_class;
static jclass repholdelectionex_class, repjoinfailex_class;
static jclass repleaseexpiredex_class;
static jclass replockoutex_class, repunavailex_class;
@@ -237,6 +237,7 @@ static jfieldID dbc_cptr_fid;
static jfieldID dblsn_file_fid, dblsn_offset_fid;
static jfieldID dbt_data_fid, dbt_data_nio_fid, dbt_size_fid, dbt_ulen_fid;
static jfieldID dbt_dlen_fid, dbt_doff_fid, dbt_flags_fid, dbt_offset_fid;
+static jfieldID dbstream_cptr_fid;
static jfieldID kr_less_fid, kr_equal_fid, kr_greater_fid;
static jfieldID lock_cptr_fid;
static jfieldID lockreq_op_fid, lockreq_modeflag_fid, lockreq_timeout_fid;
@@ -253,6 +254,7 @@ static jfieldID bt_stat_bt_ndata_fid;
static jfieldID bt_stat_bt_pagecnt_fid;
static jfieldID bt_stat_bt_pagesize_fid;
static jfieldID bt_stat_bt_minkey_fid;
+static jfieldID bt_stat_bt_nblobs_fid;
static jfieldID bt_stat_bt_re_len_fid;
static jfieldID bt_stat_bt_re_pad_fid;
static jfieldID bt_stat_bt_levels_fid;
@@ -281,6 +283,7 @@ static jfieldID h_stat_hash_version_fid;
static jfieldID h_stat_hash_metaflags_fid;
static jfieldID h_stat_hash_nkeys_fid;
static jfieldID h_stat_hash_ndata_fid;
+static jfieldID h_stat_hash_nblobs_fid;
static jfieldID h_stat_hash_pagecnt_fid;
static jfieldID h_stat_hash_pagesize_fid;
static jfieldID h_stat_hash_ffactor_fid;
@@ -296,6 +299,7 @@ static jfieldID h_stat_hash_dup_free_fid;
static jfieldID heap_stat_heap_magic_fid;
static jfieldID heap_stat_heap_version_fid;
static jfieldID heap_stat_heap_metaflags_fid;
+static jfieldID heap_stat_heap_nblobs_fid;
static jfieldID heap_stat_heap_nrecs_fid;
static jfieldID heap_stat_heap_pagecnt_fid;
static jfieldID heap_stat_heap_pagesize_fid;
@@ -348,6 +352,8 @@ static jfieldID lock_stat_st_lockers_wait_fid;
static jfieldID lock_stat_st_lockers_nowait_fid;
static jfieldID lock_stat_st_region_wait_fid;
static jfieldID lock_stat_st_region_nowait_fid;
+static jfieldID lock_stat_st_nlockers_hit_fid;
+static jfieldID lock_stat_st_nlockers_reused_fid;
static jfieldID lock_stat_st_hash_len_fid;
static jfieldID lock_stat_st_regsize_fid;
static jfieldID log_stat_st_magic_fid;
@@ -420,6 +426,7 @@ static jfieldID mpool_stat_st_region_wait_fid;
static jfieldID mpool_stat_st_mvcc_frozen_fid;
static jfieldID mpool_stat_st_mvcc_thawed_fid;
static jfieldID mpool_stat_st_mvcc_freed_fid;
+static jfieldID mpool_stat_st_mvcc_reused_fid;
static jfieldID mpool_stat_st_alloc_fid;
static jfieldID mpool_stat_st_alloc_buckets_fid;
static jfieldID mpool_stat_st_alloc_max_buckets_fid;
@@ -427,6 +434,8 @@ static jfieldID mpool_stat_st_alloc_pages_fid;
static jfieldID mpool_stat_st_alloc_max_pages_fid;
static jfieldID mpool_stat_st_io_wait_fid;
static jfieldID mpool_stat_st_sync_interrupted_fid;
+static jfieldID mpool_stat_st_oddfsize_detect_fid;
+static jfieldID mpool_stat_st_oddfsize_resolve_fid;
static jfieldID mpool_stat_st_regsize_fid;
static jfieldID mpool_stat_st_regmax_fid;
static jfieldID mutex_stat_st_mutex_align_fid;
@@ -455,6 +464,7 @@ static jfieldID qam_stat_qs_pgfree_fid;
static jfieldID qam_stat_qs_first_recno_fid;
static jfieldID qam_stat_qs_cur_recno_fid;
static jfieldID rep_stat_st_startup_complete_fid;
+static jfieldID rep_stat_st_view_fid;
static jfieldID rep_stat_st_log_queued_fid;
static jfieldID rep_stat_st_status_fid;
static jfieldID rep_stat_st_next_lsn_fid;
@@ -518,10 +528,17 @@ static jfieldID rep_stat_st_max_lease_usec_fid;
static jfieldID repmgr_stat_st_perm_failed_fid;
static jfieldID repmgr_stat_st_msgs_queued_fid;
static jfieldID repmgr_stat_st_msgs_dropped_fid;
+static jfieldID repmgr_stat_st_incoming_queue_gbytes_fid;
+static jfieldID repmgr_stat_st_incoming_queue_bytes_fid;
+static jfieldID repmgr_stat_st_incoming_msgs_dropped_fid;
static jfieldID repmgr_stat_st_connection_drop_fid;
static jfieldID repmgr_stat_st_connect_fail_fid;
static jfieldID repmgr_stat_st_elect_threads_fid;
static jfieldID repmgr_stat_st_max_elect_threads_fid;
+static jfieldID repmgr_stat_st_site_participants_fid;
+static jfieldID repmgr_stat_st_site_total_fid;
+static jfieldID repmgr_stat_st_site_views_fid;
+static jfieldID repmgr_stat_st_takeovers_fid;
static jfieldID seq_stat_st_wait_fid;
static jfieldID seq_stat_st_nowait_fid;
static jfieldID seq_stat_st_current_fid;
@@ -569,7 +586,8 @@ static jmethodID rep_stat_construct, repmgr_stat_construct, seq_stat_construct;
static jmethodID txn_stat_construct, txn_active_construct;
static jmethodID dbex_construct, deadex_construct, lockex_construct;
static jmethodID heapfullex_construct, memex_construct, memex_update_method;
-static jmethodID repdupmasterex_construct, rephandledeadex_construct;
+static jmethodID metachkfailex_construct, repdupmasterex_construct;
+static jmethodID rephandledeadex_construct;
static jmethodID repholdelectionex_construct, repjoinfailex_construct;
static jmethodID repmgr_siteinfo_construct, rephost_construct, repleaseexpiredex_construct;
static jmethodID replockoutex_construct;
@@ -581,7 +599,9 @@ static jmethodID lock_construct;
static jmethodID app_dispatch_method, errcall_method, env_feedback_method;
static jmethodID msgcall_method, paniccall_method, rep_transport_method;
-static jmethodID panic_event_notify_method, rep_client_event_notify_method;
+static jmethodID panic_event_notify_method;
+static jmethodID rep_autotakeover_failed_event_notify_method;
+static jmethodID rep_client_event_notify_method;
static jmethodID rep_connect_broken_event_notify_method;
static jmethodID rep_connect_established_event_notify_method;
static jmethodID rep_connect_try_failed_event_notify_method;
@@ -589,6 +609,7 @@ static jmethodID rep_dupmaster_event_notify_method;
static jmethodID rep_elected_event_notify_method;
static jmethodID rep_election_failed_event_notify_method;
static jmethodID rep_init_done_event_notify_method;
+static jmethodID rep_inqueue_full_event_notify_method;
static jmethodID rep_join_failure_event_notify_method;
static jmethodID rep_local_site_removed_notify_method;
static jmethodID rep_master_event_notify_method;
@@ -606,7 +627,7 @@ static jmethodID backup_write_method, bt_compare_method, bt_compress_method;
static jmethodID bt_decompress_method, bt_prefix_method;
static jmethodID db_feedback_method, dup_compare_method;
static jmethodID foreignkey_nullify_method, h_compare_method, h_hash_method;
-static jmethodID partition_method, seckey_create_method;
+static jmethodID rep_view_method, partition_method, seckey_create_method;
static jmethodID outputstream_write_method;
@@ -620,6 +641,7 @@ const struct {
{ &dbt_class, DB_PKG "DatabaseEntry" },
{ &dblsn_class, DB_PKG "LogSequenceNumber" },
{ &dbpreplist_class, DB_PKG "PreparedTransaction" },
+ { &dbstream_class, DB_PKG "internal/DbStream" },
{ &dbtxn_class, DB_PKG "internal/DbTxn" },
{ &bt_stat_class, DB_PKG "BtreeStats" },
@@ -647,6 +669,7 @@ const struct {
{ &heapfullex_class, DB_PKG "HeapFullException" },
{ &lockex_class, DB_PKG "LockNotGrantedException" },
{ &memex_class, DB_PKG "MemoryException" },
+ { &metachkfailex_class, DB_PKG "MetaCheckSumFailException" },
{ &repdupmasterex_class, DB_PKG "ReplicationDuplicateMasterException" },
{ &rephandledeadex_class, DB_PKG "ReplicationHandleDeadException" },
{ &repholdelectionex_class, DB_PKG "ReplicationHoldElectionException" },
@@ -678,6 +701,8 @@ const struct {
{ &dblsn_file_fid, &dblsn_class, "file", "I" },
{ &dblsn_offset_fid, &dblsn_class, "offset", "I" },
+ { &dbstream_cptr_fid, &dbstream_class, "swigCPtr", "J" },
+
{ &dbt_data_fid, &dbt_class, "data", "[B" },
{ &dbt_data_nio_fid, &dbt_class, "data_nio", "Ljava/nio/ByteBuffer;" },
{ &dbt_size_fid, &dbt_class, "size", "I" },
@@ -711,6 +736,7 @@ const struct {
{ &bt_stat_bt_pagecnt_fid, &bt_stat_class, "bt_pagecnt", "I" },
{ &bt_stat_bt_pagesize_fid, &bt_stat_class, "bt_pagesize", "I" },
{ &bt_stat_bt_minkey_fid, &bt_stat_class, "bt_minkey", "I" },
+ { &bt_stat_bt_nblobs_fid, &bt_stat_class, "bt_nblobs", "I" },
{ &bt_stat_bt_re_len_fid, &bt_stat_class, "bt_re_len", "I" },
{ &bt_stat_bt_re_pad_fid, &bt_stat_class, "bt_re_pad", "I" },
{ &bt_stat_bt_levels_fid, &bt_stat_class, "bt_levels", "I" },
@@ -739,6 +765,7 @@ const struct {
{ &h_stat_hash_metaflags_fid, &h_stat_class, "hash_metaflags", "I" },
{ &h_stat_hash_nkeys_fid, &h_stat_class, "hash_nkeys", "I" },
{ &h_stat_hash_ndata_fid, &h_stat_class, "hash_ndata", "I" },
+ { &h_stat_hash_nblobs_fid, &h_stat_class, "hash_nblobs", "I" },
{ &h_stat_hash_pagecnt_fid, &h_stat_class, "hash_pagecnt", "I" },
{ &h_stat_hash_pagesize_fid, &h_stat_class, "hash_pagesize", "I" },
{ &h_stat_hash_ffactor_fid, &h_stat_class, "hash_ffactor", "I" },
@@ -754,6 +781,7 @@ const struct {
{ &heap_stat_heap_magic_fid, &heap_stat_class, "heap_magic", "I" },
{ &heap_stat_heap_version_fid, &heap_stat_class, "heap_version", "I" },
{ &heap_stat_heap_metaflags_fid, &heap_stat_class, "heap_metaflags", "I" },
+ { &heap_stat_heap_nblobs_fid, &heap_stat_class, "heap_nblobs", "I" },
{ &heap_stat_heap_nrecs_fid, &heap_stat_class, "heap_nrecs", "I" },
{ &heap_stat_heap_pagecnt_fid, &heap_stat_class, "heap_pagecnt", "I" },
{ &heap_stat_heap_pagesize_fid, &heap_stat_class, "heap_pagesize", "I" },
@@ -806,6 +834,8 @@ const struct {
{ &lock_stat_st_lockers_nowait_fid, &lock_stat_class, "st_lockers_nowait", "J" },
{ &lock_stat_st_region_wait_fid, &lock_stat_class, "st_region_wait", "J" },
{ &lock_stat_st_region_nowait_fid, &lock_stat_class, "st_region_nowait", "J" },
+ { &lock_stat_st_nlockers_hit_fid, &lock_stat_class, "st_nlockers_hit", "J" },
+ { &lock_stat_st_nlockers_reused_fid, &lock_stat_class, "st_nlockers_reused", "J" },
{ &lock_stat_st_hash_len_fid, &lock_stat_class, "st_hash_len", "I" },
{ &lock_stat_st_regsize_fid, &lock_stat_class, "st_regsize", "J" },
{ &log_stat_st_magic_fid, &log_stat_class, "st_magic", "I" },
@@ -878,6 +908,7 @@ const struct {
{ &mpool_stat_st_mvcc_frozen_fid, &mpool_stat_class, "st_mvcc_frozen", "J" },
{ &mpool_stat_st_mvcc_thawed_fid, &mpool_stat_class, "st_mvcc_thawed", "J" },
{ &mpool_stat_st_mvcc_freed_fid, &mpool_stat_class, "st_mvcc_freed", "J" },
+ { &mpool_stat_st_mvcc_reused_fid, &mpool_stat_class, "st_mvcc_reused", "J" },
{ &mpool_stat_st_alloc_fid, &mpool_stat_class, "st_alloc", "J" },
{ &mpool_stat_st_alloc_buckets_fid, &mpool_stat_class, "st_alloc_buckets", "J" },
{ &mpool_stat_st_alloc_max_buckets_fid, &mpool_stat_class, "st_alloc_max_buckets", "J" },
@@ -885,6 +916,8 @@ const struct {
{ &mpool_stat_st_alloc_max_pages_fid, &mpool_stat_class, "st_alloc_max_pages", "J" },
{ &mpool_stat_st_io_wait_fid, &mpool_stat_class, "st_io_wait", "J" },
{ &mpool_stat_st_sync_interrupted_fid, &mpool_stat_class, "st_sync_interrupted", "J" },
+ { &mpool_stat_st_oddfsize_detect_fid, &mpool_stat_class, "st_oddfsize_detect", "I" },
+ { &mpool_stat_st_oddfsize_resolve_fid, &mpool_stat_class, "st_oddfsize_resolve", "I" },
{ &mpool_stat_st_regsize_fid, &mpool_stat_class, "st_regsize", "J" },
{ &mpool_stat_st_regmax_fid, &mpool_stat_class, "st_regmax", "J" },
{ &mutex_stat_st_mutex_align_fid, &mutex_stat_class, "st_mutex_align", "I" },
@@ -913,6 +946,7 @@ const struct {
{ &qam_stat_qs_first_recno_fid, &qam_stat_class, "qs_first_recno", "I" },
{ &qam_stat_qs_cur_recno_fid, &qam_stat_class, "qs_cur_recno", "I" },
{ &rep_stat_st_startup_complete_fid, &rep_stat_class, "st_startup_complete", "I" },
+ { &rep_stat_st_view_fid, &rep_stat_class, "st_view", "I" },
{ &rep_stat_st_log_queued_fid, &rep_stat_class, "st_log_queued", "J" },
{ &rep_stat_st_status_fid, &rep_stat_class, "st_status", "I" },
{ &rep_stat_st_next_lsn_fid, &rep_stat_class, "st_next_lsn", "L" DB_PKG "LogSequenceNumber;" },
@@ -976,10 +1010,17 @@ const struct {
{ &repmgr_stat_st_perm_failed_fid, &repmgr_stat_class, "st_perm_failed", "J" },
{ &repmgr_stat_st_msgs_queued_fid, &repmgr_stat_class, "st_msgs_queued", "J" },
{ &repmgr_stat_st_msgs_dropped_fid, &repmgr_stat_class, "st_msgs_dropped", "J" },
+ { &repmgr_stat_st_incoming_queue_gbytes_fid, &repmgr_stat_class, "st_incoming_queue_gbytes", "I" },
+ { &repmgr_stat_st_incoming_queue_bytes_fid, &repmgr_stat_class, "st_incoming_queue_bytes", "I" },
+ { &repmgr_stat_st_incoming_msgs_dropped_fid, &repmgr_stat_class, "st_incoming_msgs_dropped", "J" },
{ &repmgr_stat_st_connection_drop_fid, &repmgr_stat_class, "st_connection_drop", "J" },
{ &repmgr_stat_st_connect_fail_fid, &repmgr_stat_class, "st_connect_fail", "J" },
- { &repmgr_stat_st_elect_threads_fid, &repmgr_stat_class, "st_elect_threads", "J" },
- { &repmgr_stat_st_max_elect_threads_fid, &repmgr_stat_class, "st_max_elect_threads", "J" },
+ { &repmgr_stat_st_elect_threads_fid, &repmgr_stat_class, "st_elect_threads", "I" },
+ { &repmgr_stat_st_max_elect_threads_fid, &repmgr_stat_class, "st_max_elect_threads", "I" },
+ { &repmgr_stat_st_site_participants_fid, &repmgr_stat_class, "st_site_participants", "I" },
+ { &repmgr_stat_st_site_total_fid, &repmgr_stat_class, "st_site_total", "I" },
+ { &repmgr_stat_st_site_views_fid, &repmgr_stat_class, "st_site_views", "I" },
+ { &repmgr_stat_st_takeovers_fid, &repmgr_stat_class, "st_takeovers", "J" },
{ &seq_stat_st_wait_fid, &seq_stat_class, "st_wait", "J" },
{ &seq_stat_st_nowait_fid, &seq_stat_class, "st_nowait", "J" },
{ &seq_stat_st_current_fid, &seq_stat_class, "st_current", "J" },
@@ -1068,6 +1109,8 @@ const struct {
DB_PKG "internal/DbEnv;)V" },
{ &memex_update_method, &memex_class, "updateDatabaseEntry",
"(L" DB_PKG "DatabaseEntry;)V" },
+ { &metachkfailex_construct, &metachkfailex_class, "<init>",
+ "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" },
{ &repdupmasterex_construct, &repdupmasterex_class, "<init>",
"(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" },
{ &rephandledeadex_construct, &rephandledeadex_class, "<init>",
@@ -1105,6 +1148,8 @@ const struct {
"(III[B)I" },
{ &panic_event_notify_method, &dbenv_class, "handle_panic_event_notify",
"()V" },
+ { &rep_autotakeover_failed_event_notify_method, &dbenv_class,
+ "handle_rep_autotakeover_failed_event_notify", "()V" },
{ &rep_connect_broken_event_notify_method, &dbenv_class,
"handle_rep_connect_broken_event_notify", "()V" },
{ &rep_connect_established_event_notify_method, &dbenv_class,
@@ -1121,6 +1166,8 @@ const struct {
"handle_rep_election_failed_event_notify" ,"()V" },
{ &rep_init_done_event_notify_method, &dbenv_class,
"handle_rep_init_done_event_notify" , "()V" },
+ { &rep_inqueue_full_event_notify_method, &dbenv_class,
+ "handle_rep_inqueue_full_event_notify" , "()V" },
{ &rep_join_failure_event_notify_method, &dbenv_class,
"handle_rep_join_failure_event_notify" ,"()V" },
{ &rep_master_event_notify_method, &dbenv_class,
@@ -1183,6 +1230,8 @@ const struct {
{ &seckey_create_method, &db_class, "handle_seckey_create",
"(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;)[L"
DB_PKG "DatabaseEntry;" },
+ {&rep_view_method, &dbenv_class, "handle_rep_view",
+ "(Ljava/lang/String;I)Z" },
{ &outputstream_write_method, &outputstream_class, "write", "([BII)V" }
};
@@ -1291,7 +1340,7 @@ static void __dbj_detach()
(void)(*javavm)->DetachCurrentThread(javavm);
}
-static jobject __dbj_wrap_DB_LSN(JNIEnv *jenv, DB_LSN *lsn)
+static jobject __dbj_wrap_DB_LSN(JNIEnv *jenv, const DB_LSN *lsn)
{
return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
lsn->file, lsn->offset);
@@ -1344,6 +1393,10 @@ static jthrowable __dbj_get_except(JNIEnv *jenv,
return (jthrowable)(*jenv)->NewObject(jenv, heapfullex_class,
heapfullex_construct, jmsg, ret, jdbenv);
+ case DB_META_CHKSUM_FAIL:
+ return (jthrowable)(*jenv)->NewObject(jenv, metachkfailex_class,
+ metachkfailex_construct, jmsg, ret, jdbenv);
+
case DB_REP_DUPMASTER:
return (jthrowable)(*jenv)->NewObject(jenv,
repdupmasterex_class, repdupmasterex_construct,
@@ -1464,6 +1517,7 @@ struct __db_repmgr_sites {
#define DbMpoolFile __db_mpoolfile
#define DbSequence __db_sequence
#define DbSite __db_site
+#define DbStream __db_stream
#define DbTxn __db_txn
/* Suppress a compilation warning for an unused symbol */
@@ -1482,6 +1536,11 @@ typedef struct __dbt_locked {
jsize array_len;
} DBT_LOCKED;
+struct __dbt_arr {
+ DBT *arr_ptr;
+ int len;
+};
+
static int __dbj_dbt_memcopy(DBT *dbt, u_int32_t offset, void *buf, u_int32_t size, u_int32_t flags) {
DBT_LOCKED *ldbt = dbt->app_data;
JNIEnv *jenv = ldbt->jenv;
@@ -1947,11 +2006,14 @@ SWIGEXPORT void JNICALL
Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1commit(JNIEnv *jenv,
jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
struct DbTxn *txn = (struct DbTxn *) 0 ;
+ DB_ENV *dbenv = (DB_ENV *) 0 ;
+ DB_REP_STAT *rep_stat = (DB_REP_STAT *) 0 ;
ENV *env = (ENV *) 0 ;
u_int32_t flags;
DB_TXN_TOKEN token;
db_ret_t result;
db_ret_t result1;
+ db_ret_t result2;
int is_nested, is_logging_enabled, is_rep_client, commit_token_enabled;
(void)jcls;
@@ -1973,11 +2035,22 @@ Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1commit(JNIEnv *jenv,
* client node.
*/
env = txn->mgrp->env;
+ dbenv = env->dbenv;
is_nested = (txn->parent != NULL);
is_logging_enabled = env->lg_handle != NULL;
- is_rep_client = (env->rep_handle != NULL &&
- env->rep_handle->region != NULL &&
- F_ISSET((env->rep_handle->region), REP_F_CLIENT));
+ /*
+ * It is an illegal configuration to enable Java and disable statistics
+ * or enable the small build, so Java should always have access to the
+ * stat function.
+ */
+ is_rep_client = 0;
+ if (env->rep_handle != NULL && env->rep_handle->region != NULL) {
+ result2 = dbenv->rep_stat(dbenv, &rep_stat, 0);
+ if (DB_RETOK_STD(result2)) {
+ is_rep_client = (rep_stat->st_status == DB_REP_CLIENT);
+ free(rep_stat);
+ }
+ }
commit_token_enabled = (!is_nested && is_logging_enabled && !is_rep_client);
if (commit_token_enabled) {
@@ -2200,6 +2273,10 @@ static void __dbj_event_notify(DB_ENV *dbenv, u_int32_t event_id, void * info)
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, panic_event_notify_method);
break;
+ case DB_EVENT_REP_AUTOTAKEOVER_FAILED:
+ (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
+ dbenv_class, rep_autotakeover_failed_event_notify_method);
+ break;
case DB_EVENT_REP_CLIENT:
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, rep_client_event_notify_method);
@@ -2232,6 +2309,10 @@ static void __dbj_event_notify(DB_ENV *dbenv, u_int32_t event_id, void * info)
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, rep_init_done_event_notify_method);
break;
+ case DB_EVENT_REP_INQUEUE_FULL:
+ (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
+ dbenv_class, rep_inqueue_full_event_notify_method);
+ break;
case DB_EVENT_REP_JOIN_FAILURE:
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, rep_join_failure_event_notify_method);
@@ -2672,8 +2753,11 @@ err: if (dbt1->app_data == NULL)
return (ret);
}
-static int __dbj_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
+static int __dbj_bt_compare(DB *db,
+ const DBT *dbt1, const DBT *dbt2, size_t *locp)
{
+ if (locp != NULL)
+ locp = NULL;
return __dbj_am_compare(db, dbt1, dbt2, bt_compare_method);
}
@@ -2879,7 +2963,8 @@ err: if (dbt1->app_data == NULL) {
return (ret);
}
-static int __dbj_dup_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
+static int __dbj_dup_compare(DB *db,
+ const DBT *dbt1, const DBT *dbt2, size_t *locp)
{
int detach;
JNIEnv *jenv = __dbj_get_jnienv(&detach);
@@ -2887,6 +2972,8 @@ static int __dbj_dup_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
jbyteArray jdbtarr1, jdbtarr2;
int ret;
+ if (locp != NULL)
+ locp = NULL;
if (jdb == NULL)
return (EINVAL);
@@ -2932,8 +3019,11 @@ static void __dbj_db_feedback(DB *db, int opcode, int percent)
__dbj_detach();
}
-static int __dbj_h_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
+static int __dbj_h_compare(DB *db,
+ const DBT *dbt1, const DBT *dbt2, size_t *locp)
{
+ if (locp != NULL)
+ locp = NULL;
return __dbj_am_compare(db, dbt1, dbt2, h_compare_method);
}
@@ -3078,6 +3168,40 @@ err: if (detach)
return (ret);
}
+static int __dbj_rep_view(DB_ENV *dbenv, const char *name, int *result, u_int32_t flags) {
+ int detach;
+ JNIEnv *jenv = __dbj_get_jnienv(&detach);
+ jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
+ jobject jname;
+ jboolean jresult;
+ int ret;
+
+ if (jdbenv == NULL) {
+ ret = EINVAL;
+ goto err;
+ }
+
+ jname = (*jenv)->NewStringUTF(jenv, name);
+
+ jresult = (*jenv)->CallNonvirtualBooleanMethod(jenv, jdbenv, dbenv_class, rep_view_method, jname, flags);
+
+ if ((*jenv)->ExceptionOccurred(jenv)) {
+ /* The exception will be thrown, so this could be any error. */
+ ret = EINVAL;
+ goto err;
+ }
+
+ ret = 0;
+ if (jresult == JNI_FALSE)
+ *result = 0;
+ else
+ *result = 1;
+
+err: if (detach)
+ __dbj_detach();
+ return (ret);
+}
+
SWIGEXPORT jlong JNICALL
Java_com_sleepycat_db_internal_db_1javaJNI_initDbEnvRef0(
@@ -3185,6 +3309,21 @@ SWIGINTERN u_int32_t Db_get_assoc_flags(struct Db *self){
errno = self->get_assoc_flags(self, &ret);
return ret;
}
+SWIGINTERN char const *Db_get_blob_dir(struct Db *self){
+ const char *ret;
+ errno = self->get_blob_dir(self, &ret);
+ return ret;
+ }
+SWIGINTERN char const *Db_get_blob_sub_dir(struct Db *self){
+ const char *ret;
+ errno = self->get_blob_sub_dir(self, &ret);
+ return ret;
+ }
+SWIGINTERN u_int32_t Db_get_blob_threshold(struct Db *self){
+ u_int32_t ret = 0;
+ errno = self->get_blob_threshold(self, &ret);
+ return ret;
+ }
SWIGINTERN int_bool Db_get_byteswapped(struct Db *self){
int ret = 0;
errno = self->get_byteswapped(self, &ret);
@@ -3289,9 +3428,12 @@ SWIGINTERN char const **Db_get_partition_dirs(struct Db *self){
errno = self->get_partition_dirs(self, &ret);
return ret;
}
-SWIGINTERN DBT *Db_get_partition_keys(struct Db *self){
- DBT *ret = NULL;
- errno = self->get_partition_keys(self, NULL, &ret);
+SWIGINTERN struct __dbt_arr Db_get_partition_keys(struct Db *self){
+ struct __dbt_arr ret;
+ u_int32_t len;
+ errno = self->get_partition_keys(self, &len, &ret.arr_ptr);
+ ret.len = (int)len;
+ ret.len--;
return ret;
}
SWIGINTERN int Db_get_partition_parts(struct Db *self){
@@ -3360,7 +3502,13 @@ SWIGINTERN db_ret_t Db_rename(struct Db *self,char const *file,char const *datab
SWIGINTERN db_ret_t Db_set_append_recno(struct Db *self,int (*db_append_recno_fcn)(DB *,DBT *,db_recno_t)){
return self->set_append_recno(self, db_append_recno_fcn);
}
-SWIGINTERN db_ret_t Db_set_bt_compare(struct Db *self,int (*bt_compare_fcn)(DB *,DBT const *,DBT const *)){
+SWIGINTERN db_ret_t Db_set_blob_dir(struct Db *self,char const *dir){
+ return self->set_blob_dir(self, dir);
+ }
+SWIGINTERN db_ret_t Db_set_blob_threshold(struct Db *self,u_int32_t bytes,u_int32_t flags){
+ return self->set_blob_threshold(self, bytes, flags);
+ }
+SWIGINTERN db_ret_t Db_set_bt_compare(struct Db *self,int (*bt_compare_fcn)(DB *,DBT const *,DBT const *,size_t *)){
return self->set_bt_compare(self, bt_compare_fcn);
}
SWIGINTERN db_ret_t Db_set_bt_minkey(struct Db *self,u_int32_t bt_minkey){
@@ -3381,7 +3529,7 @@ SWIGINTERN db_ret_t Db_set_cachesize(struct Db *self,jlong bytes,int ncache){
SWIGINTERN db_ret_t Db_set_create_dir(struct Db *self,char const *dir){
return self->set_create_dir(self, dir);
}
-SWIGINTERN db_ret_t Db_set_dup_compare(struct Db *self,int (*dup_compare_fcn)(DB *,DBT const *,DBT const *)){
+SWIGINTERN db_ret_t Db_set_dup_compare(struct Db *self,int (*dup_compare_fcn)(DB *,DBT const *,DBT const *,size_t *)){
return self->set_dup_compare(self, dup_compare_fcn);
}
SWIGINTERN db_ret_t Db_set_encrypt(struct Db *self,char const *passwd,u_int32_t flags){
@@ -3401,7 +3549,7 @@ SWIGINTERN db_ret_t Db_set_heapsize(struct Db *self,jlong bytes){
SWIGINTERN db_ret_t Db_set_heap_regionsize(struct Db *self,u_int32_t npages){
return self->set_heap_regionsize(self, npages);
}
-SWIGINTERN db_ret_t Db_set_h_compare(struct Db *self,int (*h_compare_fcn)(DB *,DBT const *,DBT const *)){
+SWIGINTERN db_ret_t Db_set_h_compare(struct Db *self,int (*h_compare_fcn)(DB *,DBT const *,DBT const *,size_t *)){
return self->set_h_compare(self, h_compare_fcn);
}
SWIGINTERN db_ret_t Db_set_h_ffactor(struct Db *self,u_int32_t h_ffactor){
@@ -3419,6 +3567,32 @@ SWIGINTERN db_ret_t Db_set_lk_exclusive(struct Db *self,int nowait){
SWIGINTERN db_ret_t Db_set_lorder(struct Db *self,int lorder){
return self->set_lorder(self, lorder);
}
+SWIGINTERN int Db_set_msgfile(struct Db *self,char const *msgfile){
+ int ret;
+ FILE *fmsg;
+ ret = 0;
+ fmsg = NULL;
+ self->get_msgfile(self, &fmsg);
+ if (fmsg != NULL && fmsg != stdout && fmsg != stderr) {
+ fclose(fmsg);
+ fmsg = NULL;
+ }
+ if (strcmp(msgfile, "") == 0 || msgfile == NULL)
+ self->set_msgfile(self, NULL);
+ else if (strcmp(msgfile, "stdout") == 0)
+ self->set_msgfile(self, stdout);
+ else if (strcmp(msgfile, "stderr") == 0)
+ self->set_msgfile(self, stderr);
+ else {
+ fmsg = fopen(msgfile, "a");
+ if (fmsg != NULL) {
+ self->set_msgfile(self, fmsg);
+ }
+ else
+ ret = 1;
+ }
+ return ret;
+ }
SWIGINTERN db_ret_t Db_set_pagesize(struct Db *self,u_int32_t pagesize){
return self->set_pagesize(self, pagesize);
}
@@ -3454,6 +3628,9 @@ SWIGINTERN void *Db_stat(struct Db *self,DB_TXN *txnid,u_int32_t flags){
errno = self->stat(self, txnid, &statp, flags);
return statp;
}
+SWIGINTERN int Db_stat_print(struct Db *self,u_int32_t flags){
+ return self->stat_print(self, flags);
+ }
SWIGINTERN db_ret_t Db_sync(struct Db *self,u_int32_t flags){
return self->sync(self, flags);
}
@@ -3493,6 +3670,11 @@ SWIGINTERN db_recno_t Dbc_count(struct Dbc *self,u_int32_t flags){
errno = self->count(self, &count, flags);
return count;
}
+SWIGINTERN DB_STREAM *Dbc_db_stream(struct Dbc *self,u_int32_t flags){
+ DB_STREAM *dbsp = NULL;
+ errno = self->db_stream(self, &dbsp, flags);
+ return dbsp;
+ }
SWIGINTERN int Dbc_del(struct Dbc *self,u_int32_t flags){
return self->del(self, flags);
}
@@ -3549,6 +3731,16 @@ SWIGINTERN DB_TXN *DbEnv_cdsgroup_begin(struct DbEnv *self){
SWIGINTERN db_ret_t DbEnv_fileid_reset(struct DbEnv *self,char const *file,u_int32_t flags){
return self->fileid_reset(self, file, flags);
}
+SWIGINTERN char const *DbEnv_get_blob_dir(struct DbEnv *self){
+ const char *ret;
+ errno = self->get_blob_dir(self, &ret);
+ return ret;
+ }
+SWIGINTERN u_int32_t DbEnv_get_blob_threshold(struct DbEnv *self){
+ u_int32_t ret;
+ errno = self->get_blob_threshold(self, &ret);
+ return ret;
+ }
SWIGINTERN char const **DbEnv_get_data_dirs(struct DbEnv *self){
const char **ret;
errno = self->get_data_dirs(self, &ret);
@@ -3612,6 +3804,12 @@ SWIGINTERN db_ret_t DbEnv_open(struct DbEnv *self,char const *db_home,u_int32_t
SWIGINTERN db_ret_t DbEnv_remove(struct DbEnv *self,char const *db_home,u_int32_t flags){
return self->remove(self, db_home, flags);
}
+SWIGINTERN db_ret_t DbEnv_set_blob_dir(struct DbEnv *self,char const *dir){
+ return self->set_blob_dir(self, dir);
+ }
+SWIGINTERN db_ret_t DbEnv_set_blob_threshold(struct DbEnv *self,u_int32_t bytes,u_int32_t flags){
+ return self->set_blob_threshold(self, bytes, flags);
+ }
SWIGINTERN db_ret_t DbEnv_set_cachesize(struct DbEnv *self,jlong bytes,int ncache){
return self->set_cachesize(self,
(u_int32_t)(bytes / GIGABYTE),
@@ -3664,6 +3862,32 @@ SWIGINTERN db_ret_t DbEnv_set_mp_tablesize(struct DbEnv *self,u_int32_t mp_table
SWIGINTERN void DbEnv_set_msgcall(struct DbEnv *self,void (*db_msgcall_fcn)(DB_ENV const *,char const *)){
self->set_msgcall(self, db_msgcall_fcn);
}
+SWIGINTERN int DbEnv_set_msgfile(struct DbEnv *self,char const *msgfile){
+ int ret;
+ FILE *fmsg;
+ ret = 0;
+ fmsg = NULL;
+ self->get_msgfile(self, &fmsg);
+ if (fmsg != NULL && fmsg != stdout && fmsg != stderr) {
+ fclose(fmsg);
+ fmsg = NULL;
+ }
+ if (strcmp(msgfile, "") == 0 || msgfile == NULL)
+ self->set_msgfile(self, NULL);
+ else if (strcmp(msgfile, "stdout") == 0)
+ self->set_msgfile(self, stdout);
+ else if (strcmp(msgfile, "stderr") == 0)
+ self->set_msgfile(self, stderr);
+ else {
+ fmsg = fopen(msgfile, "a");
+ if (fmsg != NULL) {
+ self->set_msgfile(self, fmsg);
+ }
+ else
+ ret = 1;
+ }
+ return ret;
+ }
SWIGINTERN db_ret_t DbEnv_set_paniccall(struct DbEnv *self,void (*db_panic_fcn)(DB_ENV *,int)){
return self->set_paniccall(self, db_panic_fcn);
}
@@ -3770,6 +3994,9 @@ SWIGINTERN DB_LOCK_STAT *DbEnv_lock_stat(struct DbEnv *self,u_int32_t flags){
errno = self->lock_stat(self, &statp, flags);
return statp;
}
+SWIGINTERN int DbEnv_lock_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->lock_stat_print(self, flags);
+ }
SWIGINTERN db_ret_t DbEnv_set_lk_conflicts(struct DbEnv *self,struct __db_lk_conflicts conflicts){
return self->set_lk_conflicts(self,
conflicts.lk_conflicts, conflicts.lk_modes);
@@ -3868,6 +4095,9 @@ SWIGINTERN DB_LOG_STAT *DbEnv_log_stat(struct DbEnv *self,u_int32_t flags){
errno = self->log_stat(self, &sp, flags);
return sp;
}
+SWIGINTERN int DbEnv_log_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->log_stat_print(self, flags);
+ }
SWIGINTERN int DbEnv_log_verify(struct DbEnv *self,char const *envhome,u_int32_t cachesz,char const *dbfile,char const *dbname,time_t stime,time_t etime,u_int32_t stfile,u_int32_t stoffset,u_int32_t efile,u_int32_t eoffset,int caf,int verbose){
return self->env->log_verify_wrap(self->env, envhome, cachesz,
dbfile, dbname, stime, etime, stfile, stoffset, efile,
@@ -3945,6 +4175,9 @@ SWIGINTERN DB_MPOOL_STAT *DbEnv_memp_stat(struct DbEnv *self,u_int32_t flags){
errno = self->memp_stat(self, &mp_stat, NULL, flags);
return mp_stat;
}
+SWIGINTERN int DbEnv_memp_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->memp_stat_print(self, flags);
+ }
SWIGINTERN DB_MPOOL_FSTAT **DbEnv_memp_fstat(struct DbEnv *self,u_int32_t flags){
DB_MPOOL_FSTAT **mp_fstat = NULL;
errno = self->memp_stat(self, NULL, &mp_fstat, flags);
@@ -4003,6 +4236,9 @@ SWIGINTERN DB_MUTEX_STAT *DbEnv_mutex_stat(struct DbEnv *self,u_int32_t flags){
errno = self->mutex_stat(self, &statp, flags);
return statp;
}
+SWIGINTERN int DbEnv_mutex_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->mutex_stat_print(self, flags);
+ }
SWIGINTERN u_int32_t DbEnv_get_tx_max(struct DbEnv *self){
u_int32_t ret;
errno = self->get_tx_max(self, &ret);
@@ -4018,6 +4254,9 @@ SWIGINTERN db_timeout_t DbEnv_get_timeout(struct DbEnv *self,u_int32_t flag){
errno = self->get_timeout(self, &ret, flag);
return ret;
}
+SWIGINTERN int DbEnv_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->stat_print(self, flags);
+ }
SWIGINTERN int DbEnv_txn_applied(struct DbEnv *self,DB_TXN_TOKEN *token,u_int32_t maxwait,u_int32_t flags){
return self->txn_applied(self, token, maxwait, flags);
}
@@ -4052,6 +4291,9 @@ SWIGINTERN DB_TXN_STAT *DbEnv_txn_stat(struct DbEnv *self,u_int32_t flags){
errno = self->txn_stat(self, &statp, flags);
return statp;
}
+SWIGINTERN int DbEnv_txn_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->txn_stat_print(self, flags);
+ }
SWIGINTERN jlong DbEnv_rep_get_limit(struct DbEnv *self){
u_int32_t gbytes, bytes;
errno = self->rep_get_limit(self, &gbytes, &bytes);
@@ -4099,6 +4341,9 @@ SWIGINTERN DB_REP_STAT *DbEnv_rep_stat(struct DbEnv *self,u_int32_t flags){
errno = self->rep_stat(self, &statp, flags);
return statp;
}
+SWIGINTERN int DbEnv_rep_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->rep_stat_print(self, flags);
+ }
SWIGINTERN db_ret_t DbEnv_rep_set_limit(struct DbEnv *self,jlong bytes){
return self->rep_set_limit(self,
(u_int32_t)(bytes / GIGABYTE),
@@ -4125,6 +4370,9 @@ SWIGINTERN db_ret_t DbEnv_rep_set_request(struct DbEnv *self,u_int32_t min,u_int
SWIGINTERN db_ret_t DbEnv_rep_set_transport(struct DbEnv *self,int envid,int (*send)(DB_ENV *,DBT const *,DBT const *,DB_LSN const *,int,u_int32_t)){
return self->rep_set_transport(self, envid, send);
}
+SWIGINTERN db_ret_t DbEnv_rep_set_view(struct DbEnv *self,int (*rep_view_fcn)(DB_ENV *,char const *,int *,u_int32_t)){
+ return self->rep_set_view(self, rep_view_fcn);
+ }
SWIGINTERN u_int32_t DbEnv_rep_get_nsites(struct DbEnv *self){
u_int32_t ret;
errno = self->rep_get_nsites(self, &ret);
@@ -4154,6 +4402,11 @@ SWIGINTERN int DbEnv_repmgr_get_ack_policy(struct DbEnv *self){
errno = self->repmgr_get_ack_policy(self, &ret);
return ret;
}
+SWIGINTERN jlong DbEnv_repmgr_get_incoming_queue_max(struct DbEnv *self){
+ u_int32_t gbytes = 0, bytes = 0;
+ errno = self->repmgr_get_incoming_queue_max(self, &gbytes, &bytes);
+ return (jlong)gbytes * GIGABYTE + bytes;
+ }
SWIGINTERN DB_SITE *DbEnv_repmgr_local_site(struct DbEnv *self){
DB_SITE *site = NULL;
errno = self->repmgr_local_site(self, &site);
@@ -4162,6 +4415,11 @@ SWIGINTERN DB_SITE *DbEnv_repmgr_local_site(struct DbEnv *self){
SWIGINTERN db_ret_t DbEnv_repmgr_set_ack_policy(struct DbEnv *self,int policy){
return self->repmgr_set_ack_policy(self, policy);
}
+SWIGINTERN db_ret_t DbEnv_repmgr_set_incoming_queue_max(struct DbEnv *self,jlong bytes){
+ return self->repmgr_set_incoming_queue_max(self,
+ (u_int32_t)(bytes / GIGABYTE),
+ (u_int32_t)(bytes % GIGABYTE));
+ }
SWIGINTERN DB_SITE *DbEnv_repmgr_site(struct DbEnv *self,char const *host,u_int port){
DB_SITE *site = NULL;
errno = self->repmgr_site(self, host, port, &site, 0);
@@ -4189,9 +4447,17 @@ SWIGINTERN DB_REPMGR_STAT *DbEnv_repmgr_stat(struct DbEnv *self,u_int32_t flags)
errno = self->repmgr_stat(self, &statp, flags);
return statp;
}
+SWIGINTERN int DbEnv_repmgr_stat_print(struct DbEnv *self,u_int32_t flags){
+ return self->repmgr_stat_print(self, flags);
+ }
SWIGINTERN u_int32_t DbEnv_get_backup_config(struct DbEnv *self,u_int32_t config_type){
u_int32_t ret;
errno = self->get_backup_config(self, (DB_BACKUP_CONFIG)config_type, &ret);
+ if (errno == EINVAL) {
+ errno = 0;
+ ret = 0;
+ }
+
return ret;
}
SWIGINTERN db_ret_t DbEnv_backup(struct DbEnv *self,char const *target,u_int32_t flags){
@@ -4210,25 +4476,25 @@ SWIGINTERN db_ret_t DbEnv_set_backup_config(struct DbEnv *self,u_int32_t config_
SWIGINTERN char const *DbEnv_strerror(int ret){
return db_strerror(ret);
}
-SWIGINTERN int DbEnv_get_version_family(){
+SWIGINTERN int DbEnv_get_version_family(void){
return DB_VERSION_FAMILY;
}
-SWIGINTERN int DbEnv_get_version_release(){
+SWIGINTERN int DbEnv_get_version_release(void){
return DB_VERSION_RELEASE;
}
-SWIGINTERN int DbEnv_get_version_major(){
+SWIGINTERN int DbEnv_get_version_major(void){
return DB_VERSION_MAJOR;
}
-SWIGINTERN int DbEnv_get_version_minor(){
+SWIGINTERN int DbEnv_get_version_minor(void){
return DB_VERSION_MINOR;
}
-SWIGINTERN int DbEnv_get_version_patch(){
+SWIGINTERN int DbEnv_get_version_patch(void){
return DB_VERSION_PATCH;
}
-SWIGINTERN char const *DbEnv_get_version_string(){
+SWIGINTERN char const *DbEnv_get_version_string(void){
return DB_VERSION_STRING;
}
-SWIGINTERN char const *DbEnv_get_version_full_string(){
+SWIGINTERN char const *DbEnv_get_version_full_string(void){
return DB_VERSION_FULL_STRING;
}
SWIGINTERN void delete_DbLock(struct DbLock *self){
@@ -4279,13 +4545,13 @@ SWIGINTERN struct DbSequence *new_DbSequence(DB *db,u_int32_t flags){
SWIGINTERN db_ret_t DbSequence_close(struct DbSequence *self,u_int32_t flags){
return self->close(self, flags);
}
-SWIGINTERN db_seq_t DbSequence_get(struct DbSequence *self,DB_TXN *txnid,int32_t delta,u_int32_t flags){
+SWIGINTERN db_seq_t DbSequence_get(struct DbSequence *self,DB_TXN *txnid,u_int32_t delta,u_int32_t flags){
db_seq_t ret = 0;
errno = self->get(self, txnid, delta, &ret, flags);
return ret;
}
-SWIGINTERN int32_t DbSequence_get_cachesize(struct DbSequence *self){
- int32_t ret = 0;
+SWIGINTERN u_int32_t DbSequence_get_cachesize(struct DbSequence *self){
+ u_int32_t ret = 0;
errno = self->get_cachesize(self, &ret);
return ret;
}
@@ -4321,7 +4587,7 @@ SWIGINTERN db_ret_t DbSequence_open(struct DbSequence *self,DB_TXN *txnid,DBT *k
SWIGINTERN db_ret_t DbSequence_remove(struct DbSequence *self,DB_TXN *txnid,u_int32_t flags){
return self->remove(self, txnid, flags);
}
-SWIGINTERN db_ret_t DbSequence_set_cachesize(struct DbSequence *self,int32_t size){
+SWIGINTERN db_ret_t DbSequence_set_cachesize(struct DbSequence *self,u_int32_t size){
return self->set_cachesize(self, size);
}
SWIGINTERN db_ret_t DbSequence_set_flags(struct DbSequence *self,u_int32_t flags){
@@ -4335,6 +4601,9 @@ SWIGINTERN DB_SEQUENCE_STAT *DbSequence_stat(struct DbSequence *self,u_int32_t f
errno = self->stat(self, &ret, flags);
return ret;
}
+SWIGINTERN int DbSequence_stat_print(struct DbSequence *self,u_int32_t flags){
+ return self->stat_print(self, flags);
+ }
SWIGINTERN db_ret_t DbSite_close(struct DbSite *self){
return self->close(self);
}
@@ -4359,6 +4628,20 @@ SWIGINTERN db_ret_t DbSite_remove(struct DbSite *self){
SWIGINTERN db_ret_t DbSite_set_config(struct DbSite *self,u_int32_t which,int_bool onoff){
return self->set_config(self, which, onoff);
}
+SWIGINTERN db_ret_t DbStream_close(struct DbStream *self,u_int32_t flags){
+ return self->close(self, flags);
+ }
+SWIGINTERN int DbStream_read(struct DbStream *self,DBT *data,db_off_t offset,u_int32_t size,u_int32_t flags){
+ return self->read(self, data, offset, size, flags);
+ }
+SWIGINTERN db_off_t DbStream_size(struct DbStream *self,u_int32_t flags){
+ db_off_t ret = 0;
+ errno = self->size(self, &ret, flags);
+ return ret;
+ }
+SWIGINTERN int DbStream_write(struct DbStream *self,DBT *data,db_off_t offset,u_int32_t flags){
+ return self->write(self, data, offset, flags);
+ }
SWIGINTERN db_ret_t DbTxn_abort(struct DbTxn *self){
return self->abort(self);
}
@@ -4807,6 +5090,84 @@ SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1asso
}
+SWIGEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1blob_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ struct Db *arg1 = (struct Db *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (char *)Db_get_blob_dir(arg1);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
+ }
+
+ if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1blob_1sub_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ struct Db *arg1 = (struct Db *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (char *)Db_get_blob_sub_dir(arg1);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
+ }
+
+ if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1blob_1threshold(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ struct Db *arg1 = (struct Db *) 0 ;
+ u_int32_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (u_int32_t)Db_get_blob_threshold(arg1);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1byteswapped(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
struct Db *arg1 = (struct Db *) 0 ;
@@ -5350,7 +5711,7 @@ SWIGEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1g
{
if (result != NULL) {
- /*@SWIG:../lang/java/libdb_java/java_typemaps.i,456,STRING_ARRAY_OUT@*/ int i, len;
+ /*@SWIG:../lang/java/libdb_java/java_typemaps.i,596,STRING_ARRAY_OUT@*/ int i, len;
len = 0;
while (result[len] != NULL)
@@ -5372,7 +5733,7 @@ SWIGEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1g
SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1partition_1keys(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jobject jresult = 0 ;
struct Db *arg1 = (struct Db *) 0 ;
- DBT *result = 0 ;
+ struct __dbt_arr result;
(void)jenv;
(void)jcls;
@@ -5385,12 +5746,53 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1p
}
errno = 0;
- result = (DBT *)Db_get_partition_keys(arg1);
+ result = Db_get_partition_keys(arg1);
if (!DB_RETOK_STD(errno)) {
__dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
}
- jresult = (jobject)result;
+ {
+ DBT *dbt;
+ void *ptr;
+ int i, ret;
+ u_int32_t buflen;
+
+ if ((&result)->arr_ptr == NULL || (&result)->len <= 0)
+ jresult = NULL;
+ else {
+ /* Allocate the bulk buffer and make the bulk DBT. */
+ for (i = 0, buflen = 0; i < (&result)->len; i++)
+ buflen += (&result)->arr_ptr[i].size * sizeof(u_int32_t);
+ buflen += ((&result)->len * 2 + 1) * sizeof(u_int32_t);
+ if ((ret = __os_malloc(NULL, sizeof(DBT), &dbt)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ goto err;
+ }
+ if ((ret = __os_malloc(NULL, buflen, &dbt->data)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ goto err;
+ }
+ dbt->size = dbt->ulen = buflen;
+ DB_MULTIPLE_INIT(ptr, dbt);
+ for (i = 0; i < (&result)->len; i++)
+ DB_MULTIPLE_WRITE_NEXT(ptr, dbt,
+ (&result)->arr_ptr[i].data, (&result)->arr_ptr[i].size);
+
+ /* Map a bulk DBT into a DatabaseEntry. */
+ jresult = (*jenv)->NewObject(jenv, dbt_class, dbt_construct);
+ __dbj_dbt_copyout(jenv, dbt, NULL, jresult);
+ if (jresult == NULL)
+ goto err;
+
+ err: if (dbt != NULL) {
+ if (dbt->data != NULL)
+ __os_free(NULL, dbt->data);
+ __os_free(NULL, dbt);
+ }
+ if (ret != 0 || jresult == NULL)
+ return 0;
+ }
+ }
return jresult;
}
@@ -5940,9 +6342,64 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1appe
}
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1blob_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ struct Db *arg1 = (struct Db *) 0 ;
+ char *arg2 = (char *) 0 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
+ if (!arg2) return ;
+ }
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)Db_set_blob_dir(arg1,(char const *)arg2);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV);
+ }
+
+ if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1blob_1threshold(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
+ struct Db *arg1 = (struct Db *) 0 ;
+ u_int32_t arg2 ;
+ u_int32_t arg3 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+ arg3 = (u_int32_t)jarg3;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)Db_set_blob_threshold(arg1,arg2,arg3);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV);
+ }
+
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1bt_1compare(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
struct Db *arg1 = (struct Db *) 0 ;
- int (*arg2)(DB *,DBT const *,DBT const *) = (int (*)(DB *,DBT const *,DBT const *)) 0 ;
+ int (*arg2)(DB *,DBT const *,DBT const *,size_t *) = (int (*)(DB *,DBT const *,DBT const *,size_t *)) 0 ;
db_ret_t result;
(void)jenv;
@@ -6103,7 +6560,7 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1crea
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1dup_1compare(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
struct Db *arg1 = (struct Db *) 0 ;
- int (*arg2)(DB *,DBT const *,DBT const *) = (int (*)(DB *,DBT const *,DBT const *)) 0 ;
+ int (*arg2)(DB *,DBT const *,DBT const *,size_t *) = (int (*)(DB *,DBT const *,DBT const *,size_t *)) 0 ;
db_ret_t result;
(void)jenv;
@@ -6258,7 +6715,7 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1heap
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1h_1compare(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
struct Db *arg1 = (struct Db *) 0 ;
- int (*arg2)(DB *,DBT const *,DBT const *) = (int (*)(DB *,DBT const *,DBT const *)) 0 ;
+ int (*arg2)(DB *,DBT const *,DBT const *,size_t *) = (int (*)(DB *,DBT const *,DBT const *,size_t *)) 0 ;
db_ret_t result;
(void)jenv;
@@ -6404,6 +6861,38 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1lord
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1msgfile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jint jresult = 0 ;
+ struct Db *arg1 = (struct Db *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
+ if (!arg2) return 0;
+ }
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ result = (int)Db_set_msgfile(arg1,(char const *)arg2);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV);
+ }
+
+ jresult = (jint)result;
+ if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1pagesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
struct Db *arg1 = (struct Db *) 0 ;
u_int32_t arg2 ;
@@ -6433,7 +6922,6 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1part
u_int32_t arg2 ;
DBT *arg3 = (DBT *) 0 ;
u_int32_t (*arg4)(DB *,DBT *) = (u_int32_t (*)(DB *,DBT *)) 0 ;
- DBT_LOCKED ldbt3 ;
db_ret_t result;
(void)jenv;
@@ -6441,9 +6929,77 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1part
(void)jarg1_;
arg1 = *(struct Db **)&jarg1;
arg2 = (u_int32_t)jarg2;
-
- if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 1) != 0) {
- return ; /* An exception will be pending. */
+ {
+ DBT_LOCKED lresult;
+ DBT *dbt;
+ void *ptr, *retdata;
+ int cnt, i, ret;
+ u_int32_t retlen;
+
+ if (jarg3 == NULL)
+ arg3 = NULL;
+ else {
+ /* Copy the DBT from Java to C. */
+ if ((ret = __dbj_dbt_copyin(jenv,
+ &lresult, &dbt, jarg3, 0)) != 0)
+ /* An exception will be pending. */
+ return ;
+
+ /* Get the number of DBT from the bulk buffer. */
+ DB_MULTIPLE_INIT(ptr, dbt);
+ DB_MULTIPLE_NEXT(ptr, dbt, retdata, retlen);
+ cnt = 0;
+ while (ptr != NULL) {
+ cnt++;
+ DB_MULTIPLE_NEXT(ptr, dbt, retdata, retlen);
+ }
+
+ /* Make an array of DBTs. */
+ if ((ret = __os_malloc(NULL,
+ (cnt + 1) * sizeof(DBT), &arg3)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ goto err;
+ }
+ memset(arg3, 0, (cnt + 1) * sizeof(DBT));
+ /*
+ * Save the key array size in the last entry so that it can
+ * be used later when free the key array and mark its flags
+ * as DB_DBT_BULK which is an internal flag that can't be
+ * passed by users. The last entry will not be read by the C
+ * call __partition_set since it only reads the first cnt
+ * DBTs from the key array.
+ */
+ arg3[cnt].size = sizeof(int);
+ arg3[cnt].data = &cnt;
+ arg3[cnt].flags = DB_DBT_BULK;
+ DB_MULTIPLE_INIT(ptr, dbt);
+ for (i = 0; i < cnt; i++) {
+ DB_MULTIPLE_NEXT(ptr, dbt, retdata, retlen);
+ if (retlen != 0) {
+ /*
+ * If there's data, we need to take a copy
+ * of it.
+ */
+ arg3[i].size = retlen;
+ if ((ret = __os_malloc(NULL,
+ arg3[i].size, &arg3[i].data)) != 0) {
+ __dbj_throw(jenv,
+ ret, NULL, NULL, NULL);
+ goto err;
+ }
+ memcpy(arg3[i].data, retdata, retlen);
+ }
+ }
+
+ err: if (ret != 0) {
+ if (arg3 != NULL) {
+ for (i = 0; i < cnt; i++)
+ __os_free(NULL, arg3[i].data);
+ __os_free(NULL, arg3);
+ }
+ return ;
+ }
+ }
}
arg4 = (jarg4 == JNI_TRUE) ? __dbj_partition : NULL;
@@ -6459,20 +7015,60 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1part
__dbj_throw(jenv, result, NULL, NULL, DB2JDBENV);
}
- __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3);
+
+ {
+ int cnt, i;
+
+ if (arg3 != NULL) {
+ /* Get the array size. */
+ cnt = 0;
+ while (arg3[cnt].flags != DB_DBT_BULK)
+ cnt++;
+ for (i = 0; i < cnt; i++)
+ __os_free(NULL, arg3[i].data);
+ __os_free(NULL, arg3);
+ }
+ }
+
}
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1partition_1dirs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2) {
struct Db *arg1 = (struct Db *) 0 ;
char **arg2 = (char **) 0 ;
+ jint size2 ;
db_ret_t result;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(struct Db **)&jarg1;
- arg2 = *(char ***)&jarg2;
+ {
+ /*@SWIG:../lang/java/libdb_java/java_typemaps.i,624,STRING_ARRAY_IN@*/ int i, ret;
+ size_t sz;
+
+ size2 = (*jenv)->GetArrayLength(jenv, jarg2);
+ sz = (size_t)(size2 + 1) * sizeof(char *);
+ if ((ret = __os_malloc(NULL, sz, &arg2)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ return ;
+ }
+ /* Make a copy of each string. */
+ for (i = 0; i < size2; i++) {
+ jstring j_string = (jstring)(*jenv)->GetObjectArrayElement(jenv, jarg2, i);
+ const char * c_string = (*jenv)->GetStringUTFChars(jenv, j_string, 0);
+ sz = strlen(c_string) + 1;
+ if ((ret = __os_malloc(NULL, sz, &arg2[i])) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ return ;
+ }
+ strcpy(arg2[i], c_string);
+ (*jenv)->ReleaseStringUTFChars(jenv, j_string, c_string);
+ (*jenv)->DeleteLocalRef(jenv, j_string);
+ }
+ arg2[i] = 0;
+ /*@SWIG@*/
+ }
if (jarg1 == 0) {
__dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
@@ -6484,6 +7080,12 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1part
__dbj_throw(jenv, result, NULL, NULL, DB2JDBENV);
}
+ {
+ int i;
+ for (i = 0; i < size2-1; i++)
+ __os_free(NULL, arg2[i]);
+ __os_free(NULL, arg2);
+ }
}
@@ -6762,6 +7364,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1stat(J
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct Db *arg1 = (struct Db *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Db **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)Db_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1sync(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
struct Db *arg1 = (struct Db *) 0 ;
u_int32_t arg2 ;
@@ -6981,6 +7611,34 @@ SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1count(JN
}
+SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1db_1stream(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ struct Dbc *arg1 = (struct Dbc *) 0 ;
+ u_int32_t arg2 ;
+ DB_STREAM *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct Dbc **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (DB_STREAM *)Dbc_db_stream(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
+ }
+
+ *(DB_STREAM **)&jresult = result;
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1del(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
jint jresult = 0 ;
struct Dbc *arg1 = (struct Dbc *) 0 ;
@@ -7444,6 +8102,58 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1fileid
}
+SWIGEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1blob_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jstring jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ char *result = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (char *)DbEnv_get_blob_dir(arg1);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1blob_1threshold(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (u_int32_t)DbEnv_get_blob_threshold(arg1);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1data_1dirs(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jobjectArray jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -7467,7 +8177,7 @@ SWIGEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv
{
if (result != NULL) {
- /*@SWIG:../lang/java/libdb_java/java_typemaps.i,456,STRING_ARRAY_OUT@*/ int i, len;
+ /*@SWIG:../lang/java/libdb_java/java_typemaps.i,596,STRING_ARRAY_OUT@*/ int i, len;
len = 0;
while (result[len] != NULL)
@@ -7837,6 +8547,61 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1remove
}
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1blob_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ char *arg2 = (char *) 0 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
+ if (!arg2) return ;
+ }
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)DbEnv_set_blob_dir(arg1,(char const *)arg2);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, JDBENV);
+ }
+
+ if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
+}
+
+
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1blob_1threshold(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jint jarg3) {
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ u_int32_t arg3 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+ arg3 = (u_int32_t)jarg3;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)DbEnv_set_blob_threshold(arg1,arg2,arg3);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, JDBENV);
+ }
+
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jint jarg3) {
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
jlong arg2 ;
@@ -8248,6 +9013,33 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1m
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1msgfile(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = 0;
+ if (jarg2) {
+ arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
+ if (!arg2) return 0;
+ }
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+ result = (int)DbEnv_set_msgfile(arg1,(char const *)arg2);
+ jresult = (jint)result;
+ if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1paniccall(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
void (*arg2)(DB_ENV *,int) = (void (*)(DB_ENV *,int)) 0 ;
@@ -8944,6 +9736,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1loc
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_lock_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lk_1conflicts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2) {
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
struct __db_lk_conflicts arg2 ;
@@ -9364,7 +10184,7 @@ SWIGEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv
{
if (result != NULL) {
- /*@SWIG:../lang/java/libdb_java/java_typemaps.i,456,STRING_ARRAY_OUT@*/ int i, len;
+ /*@SWIG:../lang/java/libdb_java/java_typemaps.i,596,STRING_ARRAY_OUT@*/ int i, len;
len = 0;
while (result[len] != NULL)
@@ -9746,6 +10566,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_log_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1verify(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jint jarg3, jstring jarg4, jstring jarg5, jlong jarg6, jlong jarg7, jint jarg8, jint jarg9, jint jarg10, jint jarg11, jint jarg12, jint jarg13) {
jint jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -10237,6 +11085,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mem
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1memp_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_memp_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1memp_1fstat(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
jobjectArray jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -10650,6 +11526,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mut
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_mutex_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1tx_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -10730,6 +11634,34 @@ SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1applied(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jint jarg3, jint jarg4) {
jint jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -10748,7 +11680,7 @@ SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1a
arg2 = NULL;
} else {
arg2 = &token2;
- (*jenv)->GetByteArrayRegion(jenv, (jbyteArray)jarg2, 0, DB_TXN_TOKEN_SIZE, arg2->buf);
+ (*jenv)->GetByteArrayRegion(jenv, (jbyteArray)jarg2, 0, DB_TXN_TOKEN_SIZE, (jbyte *)arg2->buf);
}
arg3 = (u_int32_t)jarg3;
@@ -10953,6 +11885,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_txn_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1limit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -11319,6 +12279,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_rep_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1limit(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
jlong arg2 ;
@@ -11479,6 +12467,32 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1s
}
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1view(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ int (*arg2)(DB_ENV *,char const *,int *,u_int32_t) = (int (*)(DB_ENV *,char const *,int *,u_int32_t)) 0 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+
+ arg2 = (jarg2 == JNI_TRUE) ? __dbj_rep_view : NULL;
+
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)DbEnv_rep_set_view(arg1,arg2);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, JDBENV);
+ }
+
+}
+
+
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1nsites(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -11659,6 +12673,32 @@ SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr
}
+SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1get_1incoming_1queue_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+ jlong jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ jlong result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = DbEnv_repmgr_get_incoming_queue_max(arg1);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = result;
+ return jresult;
+}
+
+
SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1local_1site(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -11709,6 +12749,30 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr
}
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1set_1incoming_1queue_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ jlong arg2 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)DbEnv_repmgr_set_incoming_queue_max(arg1,arg2);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, JDBENV);
+ }
+
+}
+
+
SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1site(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) {
jlong jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -11726,7 +12790,7 @@ SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmg
if (!arg2) return 0;
}
- arg3 = jarg3;
+ arg3 = (u_int)jarg3;
if (jarg1 == 0) {
@@ -11922,6 +12986,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbEnv *arg1 = (struct DbEnv *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbEnv **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbEnv_repmgr_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1backup_1config(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
jint jresult = 0 ;
struct DbEnv *arg1 = (struct DbEnv *) 0 ;
@@ -12506,7 +13598,7 @@ SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1
jlong jresult = 0 ;
struct DbSequence *arg1 = (struct DbSequence *) 0 ;
DB_TXN *arg2 = (DB_TXN *) 0 ;
- int32_t arg3 ;
+ u_int32_t arg3 ;
u_int32_t arg4 ;
db_seq_t result;
@@ -12516,7 +13608,7 @@ SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1
(void)jarg2_;
arg1 = *(struct DbSequence **)&jarg1;
arg2 = *(DB_TXN **)&jarg2;
- arg3 = (int32_t)jarg3;
+ arg3 = (u_int32_t)jarg3;
arg4 = (u_int32_t)jarg4;
if (jarg1 == 0) {
@@ -12538,7 +13630,7 @@ SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1
SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
struct DbSequence *arg1 = (struct DbSequence *) 0 ;
- int32_t result;
+ u_int32_t result;
(void)jenv;
(void)jcls;
@@ -12551,7 +13643,7 @@ SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1g
}
errno = 0;
- result = (int32_t)DbSequence_get_cachesize(arg1);
+ result = (u_int32_t)DbSequence_get_cachesize(arg1);
if (!DB_RETOK_STD(errno)) {
__dbj_throw(jenv, errno, NULL, NULL, NULL);
}
@@ -12781,14 +13873,14 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1r
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1set_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
struct DbSequence *arg1 = (struct DbSequence *) 0 ;
- int32_t arg2 ;
+ u_int32_t arg2 ;
db_ret_t result;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(struct DbSequence **)&jarg1;
- arg2 = (int32_t)jarg2;
+ arg2 = (u_int32_t)jarg2;
if (jarg1 == 0) {
__dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
@@ -12890,6 +13982,34 @@ SWIGEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence
}
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1stat_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jint jresult = 0 ;
+ struct DbSequence *arg1 = (struct DbSequence *) 0 ;
+ u_int32_t arg2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbSequence **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (int)DbSequence_stat_print(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
+ }
+
+ jresult = (jint)result;
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSite_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
struct DbSite *arg1 = (struct DbSite *) 0 ;
db_ret_t result;
@@ -13051,6 +14171,132 @@ SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSite_1set_1
}
+SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbStream_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ struct DbStream *arg1 = (struct DbStream *) 0 ;
+ u_int32_t arg2 ;
+ db_ret_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbStream **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return ;
+ }
+
+ result = (db_ret_t)DbStream_close(arg1,arg2);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, NULL);
+ }
+
+}
+
+
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbStream_1read(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jint jarg4, jint jarg5) {
+ jint jresult = 0 ;
+ struct DbStream *arg1 = (struct DbStream *) 0 ;
+ DBT *arg2 = (DBT *) 0 ;
+ db_off_t arg3 ;
+ u_int32_t arg4 ;
+ u_int32_t arg5 ;
+ DBT_LOCKED ldbt2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbStream **)&jarg1;
+
+ if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) {
+ return 0; /* An exception will be pending. */
+ }
+ arg3 = (db_off_t)jarg3;
+ arg4 = (u_int32_t)jarg4;
+ arg5 = (u_int32_t)jarg5;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ result = (int)DbStream_read(arg1,arg2,arg3,arg4,arg5);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, NULL);
+ }
+
+ jresult = (jint)result;
+ __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2);
+ return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbStream_1size(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ jlong jresult = 0 ;
+ struct DbStream *arg1 = (struct DbStream *) 0 ;
+ u_int32_t arg2 ;
+ db_off_t result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbStream **)&jarg1;
+ arg2 = (u_int32_t)jarg2;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ errno = 0;
+ result = (db_off_t)DbStream_size(arg1,arg2);
+ if (!DB_RETOK_STD(errno)) {
+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
+ }
+
+ jresult = (jlong)result;
+ return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbStream_1write(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobject jarg2, jlong jarg3, jint jarg4) {
+ jint jresult = 0 ;
+ struct DbStream *arg1 = (struct DbStream *) 0 ;
+ DBT *arg2 = (DBT *) 0 ;
+ db_off_t arg3 ;
+ u_int32_t arg4 ;
+ DBT_LOCKED ldbt2 ;
+ int result;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ arg1 = *(struct DbStream **)&jarg1;
+
+ if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) {
+ return 0; /* An exception will be pending. */
+ }
+ arg3 = (db_off_t)jarg3;
+ arg4 = (u_int32_t)jarg4;
+
+ if (jarg1 == 0) {
+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
+ return 0;
+ }
+
+ result = (int)DbStream_write(arg1,arg2,arg3,arg4);
+ if (!DB_RETOK_STD(result)) {
+ __dbj_throw(jenv, result, NULL, NULL, NULL);
+ }
+
+ jresult = (jint)result;
+ __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2);
+ return jresult;
+}
+
+
SWIGEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1abort0(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
struct DbTxn *arg1 = (struct DbTxn *) 0 ;
db_ret_t result;
diff --git a/lang/java/libdb_java/java_callbacks.i b/lang/java/libdb_java/java_callbacks.i
index 6c3805dc..cee83795 100644
--- a/lang/java/libdb_java/java_callbacks.i
+++ b/lang/java/libdb_java/java_callbacks.i
@@ -174,6 +174,10 @@ static void __dbj_event_notify(DB_ENV *dbenv, u_int32_t event_id, void * info)
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, panic_event_notify_method);
break;
+ case DB_EVENT_REP_AUTOTAKEOVER_FAILED:
+ (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
+ dbenv_class, rep_autotakeover_failed_event_notify_method);
+ break;
case DB_EVENT_REP_CLIENT:
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, rep_client_event_notify_method);
@@ -206,6 +210,10 @@ static void __dbj_event_notify(DB_ENV *dbenv, u_int32_t event_id, void * info)
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, rep_init_done_event_notify_method);
break;
+ case DB_EVENT_REP_INQUEUE_FULL:
+ (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
+ dbenv_class, rep_inqueue_full_event_notify_method);
+ break;
case DB_EVENT_REP_JOIN_FAILURE:
(*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv,
dbenv_class, rep_join_failure_event_notify_method);
@@ -646,8 +654,11 @@ err: if (dbt1->app_data == NULL)
return (ret);
}
-static int __dbj_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
+static int __dbj_bt_compare(DB *db,
+ const DBT *dbt1, const DBT *dbt2, size_t *locp)
{
+ if (locp != NULL)
+ locp = NULL;
return __dbj_am_compare(db, dbt1, dbt2, bt_compare_method);
}
@@ -853,7 +864,8 @@ err: if (dbt1->app_data == NULL) {
return (ret);
}
-static int __dbj_dup_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
+static int __dbj_dup_compare(DB *db,
+ const DBT *dbt1, const DBT *dbt2, size_t *locp)
{
int detach;
JNIEnv *jenv = __dbj_get_jnienv(&detach);
@@ -861,6 +873,8 @@ static int __dbj_dup_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
jbyteArray jdbtarr1, jdbtarr2;
int ret;
+ if (locp != NULL)
+ locp = NULL;
if (jdb == NULL)
return (EINVAL);
@@ -906,8 +920,11 @@ static void __dbj_db_feedback(DB *db, int opcode, int percent)
__dbj_detach();
}
-static int __dbj_h_compare(DB *db, const DBT *dbt1, const DBT *dbt2)
+static int __dbj_h_compare(DB *db,
+ const DBT *dbt1, const DBT *dbt2, size_t *locp)
{
+ if (locp != NULL)
+ locp = NULL;
return __dbj_am_compare(db, dbt1, dbt2, h_compare_method);
}
@@ -1051,6 +1068,40 @@ err: if (detach)
__dbj_detach();
return (ret);
}
+
+static int __dbj_rep_view(DB_ENV *dbenv, const char *name, int *result, u_int32_t flags) {
+ int detach;
+ JNIEnv *jenv = __dbj_get_jnienv(&detach);
+ jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
+ jobject jname;
+ jboolean jresult;
+ int ret;
+
+ if (jdbenv == NULL) {
+ ret = EINVAL;
+ goto err;
+ }
+
+ jname = (*jenv)->NewStringUTF(jenv, name);
+
+ jresult = (*jenv)->CallNonvirtualBooleanMethod(jenv, jdbenv, dbenv_class, rep_view_method, jname, flags);
+
+ if ((*jenv)->ExceptionOccurred(jenv)) {
+ /* The exception will be thrown, so this could be any error. */
+ ret = EINVAL;
+ goto err;
+ }
+
+ ret = 0;
+ if (jresult == JNI_FALSE)
+ *result = 0;
+ else
+ *result = 1;
+
+err: if (detach)
+ __dbj_detach();
+ return (ret);
+}
%}
JAVA_CALLBACK(int (*backup_close_fcn)(DB_ENV *,
@@ -1098,7 +1149,7 @@ JAVA_CALLBACK(int (*callback)(DB *, const DBT *, DBT *, const DBT *, int *),
JAVA_CALLBACK(int (*db_append_recno_fcn)(DB *, DBT *, db_recno_t),
com.sleepycat.db.RecordNumberAppender, append_recno)
-JAVA_CALLBACK(int (*bt_compare_fcn)(DB *, const DBT *, const DBT *),
+JAVA_CALLBACK(int (*bt_compare_fcn)(DB *, const DBT *, const DBT *, size_t *),
java.util.Comparator, bt_compare)
JAVA_CALLBACK(int (*bt_compress_fcn)(DB *, const DBT *, const DBT *,
const DBT *, const DBT *, DBT *),
@@ -1109,11 +1160,13 @@ JAVA_CALLBACK(u_int32_t (*db_partition_fcn)(DB *, DBT *),
com.sleepycat.db.PartitionHandler, partition)
JAVA_CALLBACK(size_t (*bt_prefix_fcn)(DB *, const DBT *, const DBT *),
com.sleepycat.db.BtreePrefixCalculator, bt_prefix)
-JAVA_CALLBACK(int (*dup_compare_fcn)(DB *, const DBT *, const DBT *),
+JAVA_CALLBACK(int (*dup_compare_fcn)(DB *, const DBT *, const DBT *, size_t *),
java.util.Comparator, dup_compare)
JAVA_CALLBACK(void (*db_feedback_fcn)(DB *, int, int),
com.sleepycat.db.FeedbackHandler, db_feedback)
-JAVA_CALLBACK(int (*h_compare_fcn)(DB *, const DBT *, const DBT *),
+JAVA_CALLBACK(int (*h_compare_fcn)(DB *, const DBT *, const DBT *, size_t *),
java.util.Comparator, h_compare)
JAVA_CALLBACK(u_int32_t (*h_hash_fcn)(DB *, const void *, u_int32_t),
com.sleepycat.db.Hasher, h_hash)
+JAVA_CALLBACK(int (*rep_view_fcn)(DB_ENV *, const char *, int *, u_int32_t),
+ com.sleepycat.db.ReplicationViewHandler, rep_view);
diff --git a/lang/java/libdb_java/java_except.i b/lang/java/libdb_java/java_except.i
index 2105940b..d0e080c8 100644
--- a/lang/java/libdb_java/java_except.i
+++ b/lang/java/libdb_java/java_except.i
@@ -92,6 +92,10 @@ static jthrowable __dbj_get_except(JNIEnv *jenv,
return (jthrowable)(*jenv)->NewObject(jenv, heapfullex_class,
heapfullex_construct, jmsg, ret, jdbenv);
+ case DB_META_CHKSUM_FAIL:
+ return (jthrowable)(*jenv)->NewObject(jenv, metachkfailex_class,
+ metachkfailex_construct, jmsg, ret, jdbenv);
+
case DB_REP_DUPMASTER:
return (jthrowable)(*jenv)->NewObject(jenv,
repdupmasterex_class, repdupmasterex_construct,
diff --git a/lang/java/libdb_java/java_stat_auto.c b/lang/java/libdb_java/java_stat_auto.c
index a17335f9..0d6d2068 100644
--- a/lang/java/libdb_java/java_stat_auto.c
+++ b/lang/java/libdb_java/java_stat_auto.c
@@ -4,7 +4,7 @@
*
* See the file LICENSE for redistribution information.
*
- * Copyright (c) 2002, 2012 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved.
*/
static int __dbj_fill_bt_stat(JNIEnv *jnienv,
jobject jobj, struct __db_bt_stat *statp) {
@@ -16,6 +16,7 @@ static int __dbj_fill_bt_stat(JNIEnv *jnienv,
JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_pagecnt_fid, statp, bt_pagecnt);
JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_pagesize_fid, statp, bt_pagesize);
JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_minkey_fid, statp, bt_minkey);
+ JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_nblobs_fid, statp, bt_nblobs);
JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_re_len_fid, statp, bt_re_len);
JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_re_pad_fid, statp, bt_re_pad);
JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_levels_fid, statp, bt_levels);
@@ -52,6 +53,7 @@ static int __dbj_fill_h_stat(JNIEnv *jnienv,
JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_metaflags_fid, statp, hash_metaflags);
JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_nkeys_fid, statp, hash_nkeys);
JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_ndata_fid, statp, hash_ndata);
+ JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_nblobs_fid, statp, hash_nblobs);
JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_pagecnt_fid, statp, hash_pagecnt);
JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_pagesize_fid, statp, hash_pagesize);
JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_ffactor_fid, statp, hash_ffactor);
@@ -71,6 +73,7 @@ static int __dbj_fill_heap_stat(JNIEnv *jnienv,
JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_magic_fid, statp, heap_magic);
JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_version_fid, statp, heap_version);
JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_metaflags_fid, statp, heap_metaflags);
+ JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_nblobs_fid, statp, heap_nblobs);
JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_nrecs_fid, statp, heap_nrecs);
JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_pagecnt_fid, statp, heap_pagecnt);
JAVADB_STAT_INT(jnienv, jobj, heap_stat_heap_pagesize_fid, statp, heap_pagesize);
@@ -127,6 +130,8 @@ static int __dbj_fill_lock_stat(JNIEnv *jnienv,
JAVADB_STAT_LONG(jnienv, jobj, lock_stat_st_lockers_nowait_fid, statp, st_lockers_nowait);
JAVADB_STAT_LONG(jnienv, jobj, lock_stat_st_region_wait_fid, statp, st_region_wait);
JAVADB_STAT_LONG(jnienv, jobj, lock_stat_st_region_nowait_fid, statp, st_region_nowait);
+ JAVADB_STAT_LONG(jnienv, jobj, lock_stat_st_nlockers_hit_fid, statp, st_nlockers_hit);
+ JAVADB_STAT_LONG(jnienv, jobj, lock_stat_st_nlockers_reused_fid, statp, st_nlockers_reused);
JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_hash_len_fid, statp, st_hash_len);
JAVADB_STAT_LONG(jnienv, jobj, lock_stat_st_regsize_fid, statp, st_regsize);
return (0);
@@ -211,6 +216,7 @@ static int __dbj_fill_mpool_stat(JNIEnv *jnienv,
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_mvcc_frozen_fid, statp, st_mvcc_frozen);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_mvcc_thawed_fid, statp, st_mvcc_thawed);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_mvcc_freed_fid, statp, st_mvcc_freed);
+ JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_mvcc_reused_fid, statp, st_mvcc_reused);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_alloc_fid, statp, st_alloc);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_alloc_buckets_fid, statp, st_alloc_buckets);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_alloc_max_buckets_fid, statp, st_alloc_max_buckets);
@@ -218,6 +224,8 @@ static int __dbj_fill_mpool_stat(JNIEnv *jnienv,
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_alloc_max_pages_fid, statp, st_alloc_max_pages);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_io_wait_fid, statp, st_io_wait);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_sync_interrupted_fid, statp, st_sync_interrupted);
+ JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_oddfsize_detect_fid, statp, st_oddfsize_detect);
+ JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_oddfsize_resolve_fid, statp, st_oddfsize_resolve);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_regsize_fid, statp, st_regsize);
JAVADB_STAT_LONG(jnienv, jobj, mpool_stat_st_regmax_fid, statp, st_regmax);
return (0);
@@ -258,6 +266,7 @@ static int __dbj_fill_qam_stat(JNIEnv *jnienv,
static int __dbj_fill_rep_stat(JNIEnv *jnienv,
jobject jobj, struct __db_rep_stat *statp) {
JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_startup_complete_fid, statp, st_startup_complete);
+ JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_view_fid, statp, st_view);
JAVADB_STAT_LONG(jnienv, jobj, rep_stat_st_log_queued_fid, statp, st_log_queued);
JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_status_fid, statp, st_status);
JAVADB_STAT_LSN(jnienv, jobj, rep_stat_st_next_lsn_fid, statp, st_next_lsn);
@@ -325,10 +334,17 @@ static int __dbj_fill_repmgr_stat(JNIEnv *jnienv,
JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_perm_failed_fid, statp, st_perm_failed);
JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_msgs_queued_fid, statp, st_msgs_queued);
JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_msgs_dropped_fid, statp, st_msgs_dropped);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_incoming_queue_gbytes_fid, statp, st_incoming_queue_gbytes);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_incoming_queue_bytes_fid, statp, st_incoming_queue_bytes);
+ JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_incoming_msgs_dropped_fid, statp, st_incoming_msgs_dropped);
JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_connection_drop_fid, statp, st_connection_drop);
JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_connect_fail_fid, statp, st_connect_fail);
- JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_elect_threads_fid, statp, st_elect_threads);
- JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_max_elect_threads_fid, statp, st_max_elect_threads);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_elect_threads_fid, statp, st_elect_threads);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_max_elect_threads_fid, statp, st_max_elect_threads);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_site_participants_fid, statp, st_site_participants);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_site_total_fid, statp, st_site_total);
+ JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_site_views_fid, statp, st_site_views);
+ JAVADB_STAT_LONG(jnienv, jobj, repmgr_stat_st_takeovers_fid, statp, st_takeovers);
return (0);
}
static int __dbj_fill_seq_stat(JNIEnv *jnienv,
diff --git a/lang/java/libdb_java/java_typemaps.i b/lang/java/libdb_java/java_typemaps.i
index 31aacede..48baa306 100644
--- a/lang/java/libdb_java/java_typemaps.i
+++ b/lang/java/libdb_java/java_typemaps.i
@@ -69,6 +69,7 @@ struct __db_repmgr_sites {
#define DbMpoolFile __db_mpoolfile
#define DbSequence __db_sequence
#define DbSite __db_site
+#define DbStream __db_stream
#define DbTxn __db_txn
/* Suppress a compilation warning for an unused symbol */
@@ -91,6 +92,11 @@ typedef struct __dbt_locked {
jsize array_len;
} DBT_LOCKED;
+struct __dbt_arr {
+ DBT *arr_ptr;
+ int len;
+};
+
static int __dbj_dbt_memcopy(DBT *dbt, u_int32_t offset, void *buf, u_int32_t size, u_int32_t flags) {
DBT_LOCKED *ldbt = dbt->app_data;
JNIEnv *jenv = ldbt->jenv;
@@ -305,16 +311,150 @@ static void __dbj_dbt_release(
return $null; /* An exception will be pending. */
}%}
-/* Special cases for DBTs that may be null: DbEnv.rep_start, Db.compact Db.set_partition */
+/* Special cases for DBTs that may be null: DbEnv.rep_start, Db.compact */
%typemap(in) DBT *data_or_null (DBT_LOCKED ldbt) %{
if (__dbj_dbt_copyin(jenv, &ldbt, &$1, $input, 1) != 0) {
return $null; /* An exception will be pending. */
}%}
-%apply DBT *data_or_null {DBT *cdata, DBT *start, DBT *stop, DBT *end, DBT *db_put_data, DBT *keys};
+%apply DBT *data_or_null {DBT *cdata, DBT *start, DBT *stop, DBT *end, DBT *db_put_data};
%typemap(freearg) DBT * %{ __dbj_dbt_release(jenv, $input, $1, &ldbt$argnum); %}
+/* Special case for Db.set_partition. */
+%typemap(in) DBT *keys {
+ DBT_LOCKED lresult;
+ DBT *dbt;
+ void *ptr, *retdata;
+ int cnt, i, ret;
+ u_int32_t retlen;
+
+ if ($input == NULL)
+ $1 = NULL;
+ else {
+ /* Copy the DBT from Java to C. */
+ if ((ret = __dbj_dbt_copyin(jenv,
+ &lresult, &dbt, $input, 0)) != 0)
+ /* An exception will be pending. */
+ return $null;
+
+ /* Get the number of DBT from the bulk buffer. */
+ DB_MULTIPLE_INIT(ptr, dbt);
+ DB_MULTIPLE_NEXT(ptr, dbt, retdata, retlen);
+ cnt = 0;
+ while (ptr != NULL) {
+ cnt++;
+ DB_MULTIPLE_NEXT(ptr, dbt, retdata, retlen);
+ }
+
+ /* Make an array of DBTs. */
+ if ((ret = __os_malloc(NULL,
+ (cnt + 1) * sizeof(DBT), &$1)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ goto err;
+ }
+ memset($1, 0, (cnt + 1) * sizeof(DBT));
+ /*
+ * Save the key array size in the last entry so that it can
+ * be used later when free the key array and mark its flags
+ * as DB_DBT_BULK which is an internal flag that can't be
+ * passed by users. The last entry will not be read by the C
+ * call __partition_set since it only reads the first cnt
+ * DBTs from the key array.
+ */
+ $1[cnt].size = sizeof(int);
+ $1[cnt].data = &cnt;
+ $1[cnt].flags = DB_DBT_BULK;
+ DB_MULTIPLE_INIT(ptr, dbt);
+ for (i = 0; i < cnt; i++) {
+ DB_MULTIPLE_NEXT(ptr, dbt, retdata, retlen);
+ if (retlen != 0) {
+ /*
+ * If there's data, we need to take a copy
+ * of it.
+ */
+ $1[i].size = retlen;
+ if ((ret = __os_malloc(NULL,
+ $1[i].size, &$1[i].data)) != 0) {
+ __dbj_throw(jenv,
+ ret, NULL, NULL, NULL);
+ goto err;
+ }
+ memcpy($1[i].data, retdata, retlen);
+ }
+ }
+
+err: if (ret != 0) {
+ if ($1 != NULL) {
+ for (i = 0; i < cnt; i++)
+ __os_free(NULL, $1[i].data);
+ __os_free(NULL, $1);
+ }
+ return $null;
+ }
+ }
+}
+
+%typemap(freearg) DBT *keys %{
+{
+ int cnt, i;
+
+ if ($1 != NULL) {
+ /* Get the array size. */
+ cnt = 0;
+ while ($1[cnt].flags != DB_DBT_BULK)
+ cnt++;
+ for (i = 0; i < cnt; i++)
+ __os_free(NULL, $1[i].data);
+ __os_free(NULL, $1);
+ }
+}
+%}
+
+JAVA_TYPEMAP(struct __dbt_arr, com.sleepycat.db.DatabaseEntry, jobject)
+%typemap(out) struct __dbt_arr {
+ DBT *dbt;
+ void *ptr;
+ int i, ret;
+ u_int32_t buflen;
+
+ if ($1.arr_ptr == NULL || $1.len <= 0)
+ $result = NULL;
+ else {
+ /* Allocate the bulk buffer and make the bulk DBT. */
+ for (i = 0, buflen = 0; i < $1.len; i++)
+ buflen += $1.arr_ptr[i].size * sizeof(u_int32_t);
+ buflen += ($1.len * 2 + 1) * sizeof(u_int32_t);
+ if ((ret = __os_malloc(NULL, sizeof(DBT), &dbt)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ goto err;
+ }
+ if ((ret = __os_malloc(NULL, buflen, &dbt->data)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ goto err;
+ }
+ dbt->size = dbt->ulen = buflen;
+ DB_MULTIPLE_INIT(ptr, dbt);
+ for (i = 0; i < $1.len; i++)
+ DB_MULTIPLE_WRITE_NEXT(ptr, dbt,
+ $1.arr_ptr[i].data, $1.arr_ptr[i].size);
+
+ /* Map a bulk DBT into a DatabaseEntry. */
+ $result = (*jenv)->NewObject(jenv, dbt_class, dbt_construct);
+ __dbj_dbt_copyout(jenv, dbt, NULL, $result);
+ if ($result == NULL)
+ goto err;
+
+err: if (dbt != NULL) {
+ if (dbt->data != NULL)
+ __os_free(NULL, dbt->data);
+ __os_free(NULL, dbt);
+ }
+ if (ret != 0 || $result == NULL)
+ return $null;
+ }
+}
+
/* DB_TXN_TOKEN handling */
JAVA_TYPEMAP(DB_TXN_TOKEN *, byte[], jobject)
@@ -331,13 +471,13 @@ JAVA_TYPEMAP(DB_TXN_TOKEN *, byte[], jobject)
$1 = NULL;
} else {
$1 = &token;
- (*jenv)->GetByteArrayRegion(jenv, (jbyteArray)$input, 0, DB_TXN_TOKEN_SIZE, $1->buf);
+ (*jenv)->GetByteArrayRegion(jenv, (jbyteArray)$input, 0, DB_TXN_TOKEN_SIZE, (jbyte *)$1->buf);
}
%}
%typemap(out) DB_TXN_TOKEN * %{
if ($input != NULL) {
- (*jenv)->SetByteArrayRegion(jenv, (jbyteArray)$input, 0, DB_TXN_TOKEN_SIZE, $1->buf);
+ (*jenv)->SetByteArrayRegion(jenv, (jbyteArray)$input, 0, DB_TXN_TOKEN_SIZE, (jbyte *)$1->buf);
}
%}
@@ -392,7 +532,7 @@ JAVA_TYPEMAP(u_int *, long, jlong)
%}
%typemap(in) u_int %{
- $1 = $input;
+ $1 = (u_int)$input;
%}
JAVA_TYPEMAP(DB_KEY_RANGE *, com.sleepycat.db.KeyRange, jobject)
@@ -481,6 +621,48 @@ JAVA_TYPEMAP(char **, String[], jobjectArray)
}
}
+%define STRING_ARRAY_IN
+ int i, ret;
+ size_t sz;
+
+ size = (*jenv)->GetArrayLength(jenv, $input);
+ sz = (size_t)(size + 1) * sizeof(char *);
+ if ((ret = __os_malloc(NULL, sz, &$1)) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ return $null;
+ }
+ /* Make a copy of each string. */
+ for (i = 0; i < size; i++) {
+ jstring j_string = (jstring)(*jenv)->GetObjectArrayElement(jenv, $input, i);
+ const char * c_string = (*jenv)->GetStringUTFChars(jenv, j_string, 0);
+ sz = strlen(c_string) + 1;
+ if ((ret = __os_malloc(NULL, sz, &$1[i])) != 0) {
+ __dbj_throw(jenv, ret, NULL, NULL, NULL);
+ return $null;
+ }
+ strcpy($1[i], c_string);
+ (*jenv)->ReleaseStringUTFChars(jenv, j_string, c_string);
+ (*jenv)->DeleteLocalRef(jenv, j_string);
+ }
+ $1[i] = 0;
+%enddef
+
+/* This cleans up the memory we malloc'd before the function call. */
+%typemap(freearg) char ** {
+ int i;
+ for (i = 0; i < size$argnum-1; i++)
+ __os_free(NULL, $1[i]);
+ __os_free(NULL, $1);
+}
+
+%typemap(in) char ** (jint size) {
+ STRING_ARRAY_IN
+}
+
+%typemap(in) const char ** (jint size) {
+ STRING_ARRAY_IN
+}
+
JAVA_TYPEMAP(char **hostp, String, jobjectArray)
JAVA_TYPEMAP(struct __db_lk_conflicts, byte[][], jobjectArray)
@@ -834,11 +1016,14 @@ SWIGEXPORT void JNICALL
Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1commit(JNIEnv *jenv,
jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
struct DbTxn *txn = (struct DbTxn *) 0 ;
+ DB_ENV *dbenv = (DB_ENV *) 0 ;
+ DB_REP_STAT *rep_stat = (DB_REP_STAT *) 0 ;
ENV *env = (ENV *) 0 ;
u_int32_t flags;
DB_TXN_TOKEN token;
db_ret_t result;
db_ret_t result1;
+ db_ret_t result2;
int is_nested, is_logging_enabled, is_rep_client, commit_token_enabled;
(void)jcls;
@@ -860,11 +1045,22 @@ Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1commit(JNIEnv *jenv,
* client node.
*/
env = txn->mgrp->env;
+ dbenv = env->dbenv;
is_nested = (txn->parent != NULL);
is_logging_enabled = env->lg_handle != NULL;
- is_rep_client = (env->rep_handle != NULL &&
- env->rep_handle->region != NULL &&
- F_ISSET((env->rep_handle->region), REP_F_CLIENT));
+ /*
+ * It is an illegal configuration to enable Java and disable statistics
+ * or enable the small build, so Java should always have access to the
+ * stat function.
+ */
+ is_rep_client = 0;
+ if (env->rep_handle != NULL && env->rep_handle->region != NULL) {
+ result2 = dbenv->rep_stat(dbenv, &rep_stat, 0);
+ if (DB_RETOK_STD(result2)) {
+ is_rep_client = (rep_stat->st_status == DB_REP_CLIENT);
+ free(rep_stat);
+ }
+ }
commit_token_enabled = (!is_nested && is_logging_enabled && !is_rep_client);
if (commit_token_enabled) {
diff --git a/lang/java/libdb_java/java_util.i b/lang/java/libdb_java/java_util.i
index 62855776..3273a0f9 100644
--- a/lang/java/libdb_java/java_util.i
+++ b/lang/java/libdb_java/java_util.i
@@ -77,7 +77,7 @@ static int __dbj_throw(JNIEnv *jenv,
static JavaVM *javavm;
static jclass db_class, dbc_class, dbenv_class, dbt_class, dblsn_class;
-static jclass dbpreplist_class, dbtxn_class;
+static jclass dbpreplist_class, dbstream_class, dbtxn_class;
static jclass keyrange_class;
static jclass bt_stat_class, compact_class, h_stat_class, heap_stat_class;
static jclass lock_stat_class, log_stat_class, mpool_stat_class, mpool_fstat_class;
@@ -87,7 +87,7 @@ static jclass seq_stat_class, txn_stat_class;
static jclass txn_active_class;
static jclass lock_class, lockreq_class;
static jclass dbex_class, deadex_class, heapfullex_class, lockex_class, memex_class;
-static jclass repdupmasterex_class, rephandledeadex_class;
+static jclass metachkfailex_class, repdupmasterex_class, rephandledeadex_class;
static jclass repholdelectionex_class, repjoinfailex_class;
static jclass repleaseexpiredex_class;
static jclass replockoutex_class, repunavailex_class;
@@ -99,6 +99,7 @@ static jfieldID dbc_cptr_fid;
static jfieldID dblsn_file_fid, dblsn_offset_fid;
static jfieldID dbt_data_fid, dbt_data_nio_fid, dbt_size_fid, dbt_ulen_fid;
static jfieldID dbt_dlen_fid, dbt_doff_fid, dbt_flags_fid, dbt_offset_fid;
+static jfieldID dbstream_cptr_fid;
static jfieldID kr_less_fid, kr_equal_fid, kr_greater_fid;
static jfieldID lock_cptr_fid;
static jfieldID lockreq_op_fid, lockreq_modeflag_fid, lockreq_timeout_fid;
@@ -115,6 +116,7 @@ static jfieldID bt_stat_bt_ndata_fid;
static jfieldID bt_stat_bt_pagecnt_fid;
static jfieldID bt_stat_bt_pagesize_fid;
static jfieldID bt_stat_bt_minkey_fid;
+static jfieldID bt_stat_bt_nblobs_fid;
static jfieldID bt_stat_bt_re_len_fid;
static jfieldID bt_stat_bt_re_pad_fid;
static jfieldID bt_stat_bt_levels_fid;
@@ -143,6 +145,7 @@ static jfieldID h_stat_hash_version_fid;
static jfieldID h_stat_hash_metaflags_fid;
static jfieldID h_stat_hash_nkeys_fid;
static jfieldID h_stat_hash_ndata_fid;
+static jfieldID h_stat_hash_nblobs_fid;
static jfieldID h_stat_hash_pagecnt_fid;
static jfieldID h_stat_hash_pagesize_fid;
static jfieldID h_stat_hash_ffactor_fid;
@@ -158,6 +161,7 @@ static jfieldID h_stat_hash_dup_free_fid;
static jfieldID heap_stat_heap_magic_fid;
static jfieldID heap_stat_heap_version_fid;
static jfieldID heap_stat_heap_metaflags_fid;
+static jfieldID heap_stat_heap_nblobs_fid;
static jfieldID heap_stat_heap_nrecs_fid;
static jfieldID heap_stat_heap_pagecnt_fid;
static jfieldID heap_stat_heap_pagesize_fid;
@@ -210,6 +214,8 @@ static jfieldID lock_stat_st_lockers_wait_fid;
static jfieldID lock_stat_st_lockers_nowait_fid;
static jfieldID lock_stat_st_region_wait_fid;
static jfieldID lock_stat_st_region_nowait_fid;
+static jfieldID lock_stat_st_nlockers_hit_fid;
+static jfieldID lock_stat_st_nlockers_reused_fid;
static jfieldID lock_stat_st_hash_len_fid;
static jfieldID lock_stat_st_regsize_fid;
static jfieldID log_stat_st_magic_fid;
@@ -282,6 +288,7 @@ static jfieldID mpool_stat_st_region_wait_fid;
static jfieldID mpool_stat_st_mvcc_frozen_fid;
static jfieldID mpool_stat_st_mvcc_thawed_fid;
static jfieldID mpool_stat_st_mvcc_freed_fid;
+static jfieldID mpool_stat_st_mvcc_reused_fid;
static jfieldID mpool_stat_st_alloc_fid;
static jfieldID mpool_stat_st_alloc_buckets_fid;
static jfieldID mpool_stat_st_alloc_max_buckets_fid;
@@ -289,6 +296,8 @@ static jfieldID mpool_stat_st_alloc_pages_fid;
static jfieldID mpool_stat_st_alloc_max_pages_fid;
static jfieldID mpool_stat_st_io_wait_fid;
static jfieldID mpool_stat_st_sync_interrupted_fid;
+static jfieldID mpool_stat_st_oddfsize_detect_fid;
+static jfieldID mpool_stat_st_oddfsize_resolve_fid;
static jfieldID mpool_stat_st_regsize_fid;
static jfieldID mpool_stat_st_regmax_fid;
static jfieldID mutex_stat_st_mutex_align_fid;
@@ -317,6 +326,7 @@ static jfieldID qam_stat_qs_pgfree_fid;
static jfieldID qam_stat_qs_first_recno_fid;
static jfieldID qam_stat_qs_cur_recno_fid;
static jfieldID rep_stat_st_startup_complete_fid;
+static jfieldID rep_stat_st_view_fid;
static jfieldID rep_stat_st_log_queued_fid;
static jfieldID rep_stat_st_status_fid;
static jfieldID rep_stat_st_next_lsn_fid;
@@ -380,10 +390,17 @@ static jfieldID rep_stat_st_max_lease_usec_fid;
static jfieldID repmgr_stat_st_perm_failed_fid;
static jfieldID repmgr_stat_st_msgs_queued_fid;
static jfieldID repmgr_stat_st_msgs_dropped_fid;
+static jfieldID repmgr_stat_st_incoming_queue_gbytes_fid;
+static jfieldID repmgr_stat_st_incoming_queue_bytes_fid;
+static jfieldID repmgr_stat_st_incoming_msgs_dropped_fid;
static jfieldID repmgr_stat_st_connection_drop_fid;
static jfieldID repmgr_stat_st_connect_fail_fid;
static jfieldID repmgr_stat_st_elect_threads_fid;
static jfieldID repmgr_stat_st_max_elect_threads_fid;
+static jfieldID repmgr_stat_st_site_participants_fid;
+static jfieldID repmgr_stat_st_site_total_fid;
+static jfieldID repmgr_stat_st_site_views_fid;
+static jfieldID repmgr_stat_st_takeovers_fid;
static jfieldID seq_stat_st_wait_fid;
static jfieldID seq_stat_st_nowait_fid;
static jfieldID seq_stat_st_current_fid;
@@ -431,7 +448,8 @@ static jmethodID rep_stat_construct, repmgr_stat_construct, seq_stat_construct;
static jmethodID txn_stat_construct, txn_active_construct;
static jmethodID dbex_construct, deadex_construct, lockex_construct;
static jmethodID heapfullex_construct, memex_construct, memex_update_method;
-static jmethodID repdupmasterex_construct, rephandledeadex_construct;
+static jmethodID metachkfailex_construct, repdupmasterex_construct;
+static jmethodID rephandledeadex_construct;
static jmethodID repholdelectionex_construct, repjoinfailex_construct;
static jmethodID repmgr_siteinfo_construct, rephost_construct, repleaseexpiredex_construct;
static jmethodID replockoutex_construct;
@@ -443,7 +461,9 @@ static jmethodID lock_construct;
static jmethodID app_dispatch_method, errcall_method, env_feedback_method;
static jmethodID msgcall_method, paniccall_method, rep_transport_method;
-static jmethodID panic_event_notify_method, rep_client_event_notify_method;
+static jmethodID panic_event_notify_method;
+static jmethodID rep_autotakeover_failed_event_notify_method;
+static jmethodID rep_client_event_notify_method;
static jmethodID rep_connect_broken_event_notify_method;
static jmethodID rep_connect_established_event_notify_method;
static jmethodID rep_connect_try_failed_event_notify_method;
@@ -451,6 +471,7 @@ static jmethodID rep_dupmaster_event_notify_method;
static jmethodID rep_elected_event_notify_method;
static jmethodID rep_election_failed_event_notify_method;
static jmethodID rep_init_done_event_notify_method;
+static jmethodID rep_inqueue_full_event_notify_method;
static jmethodID rep_join_failure_event_notify_method;
static jmethodID rep_local_site_removed_notify_method;
static jmethodID rep_master_event_notify_method;
@@ -468,7 +489,7 @@ static jmethodID backup_write_method, bt_compare_method, bt_compress_method;
static jmethodID bt_decompress_method, bt_prefix_method;
static jmethodID db_feedback_method, dup_compare_method;
static jmethodID foreignkey_nullify_method, h_compare_method, h_hash_method;
-static jmethodID partition_method, seckey_create_method;
+static jmethodID rep_view_method, partition_method, seckey_create_method;
static jmethodID outputstream_write_method;
@@ -482,6 +503,7 @@ const struct {
{ &dbt_class, DB_PKG "DatabaseEntry" },
{ &dblsn_class, DB_PKG "LogSequenceNumber" },
{ &dbpreplist_class, DB_PKG "PreparedTransaction" },
+ { &dbstream_class, DB_PKG "internal/DbStream" },
{ &dbtxn_class, DB_PKG "internal/DbTxn" },
{ &bt_stat_class, DB_PKG "BtreeStats" },
@@ -509,6 +531,7 @@ const struct {
{ &heapfullex_class, DB_PKG "HeapFullException" },
{ &lockex_class, DB_PKG "LockNotGrantedException" },
{ &memex_class, DB_PKG "MemoryException" },
+ { &metachkfailex_class, DB_PKG "MetaCheckSumFailException" },
{ &repdupmasterex_class, DB_PKG "ReplicationDuplicateMasterException" },
{ &rephandledeadex_class, DB_PKG "ReplicationHandleDeadException" },
{ &repholdelectionex_class, DB_PKG "ReplicationHoldElectionException" },
@@ -540,6 +563,8 @@ const struct {
{ &dblsn_file_fid, &dblsn_class, "file", "I" },
{ &dblsn_offset_fid, &dblsn_class, "offset", "I" },
+ { &dbstream_cptr_fid, &dbstream_class, "swigCPtr", "J" },
+
{ &dbt_data_fid, &dbt_class, "data", "[B" },
{ &dbt_data_nio_fid, &dbt_class, "data_nio", "Ljava/nio/ByteBuffer;" },
{ &dbt_size_fid, &dbt_class, "size", "I" },
@@ -573,6 +598,7 @@ const struct {
{ &bt_stat_bt_pagecnt_fid, &bt_stat_class, "bt_pagecnt", "I" },
{ &bt_stat_bt_pagesize_fid, &bt_stat_class, "bt_pagesize", "I" },
{ &bt_stat_bt_minkey_fid, &bt_stat_class, "bt_minkey", "I" },
+ { &bt_stat_bt_nblobs_fid, &bt_stat_class, "bt_nblobs", "I" },
{ &bt_stat_bt_re_len_fid, &bt_stat_class, "bt_re_len", "I" },
{ &bt_stat_bt_re_pad_fid, &bt_stat_class, "bt_re_pad", "I" },
{ &bt_stat_bt_levels_fid, &bt_stat_class, "bt_levels", "I" },
@@ -601,6 +627,7 @@ const struct {
{ &h_stat_hash_metaflags_fid, &h_stat_class, "hash_metaflags", "I" },
{ &h_stat_hash_nkeys_fid, &h_stat_class, "hash_nkeys", "I" },
{ &h_stat_hash_ndata_fid, &h_stat_class, "hash_ndata", "I" },
+ { &h_stat_hash_nblobs_fid, &h_stat_class, "hash_nblobs", "I" },
{ &h_stat_hash_pagecnt_fid, &h_stat_class, "hash_pagecnt", "I" },
{ &h_stat_hash_pagesize_fid, &h_stat_class, "hash_pagesize", "I" },
{ &h_stat_hash_ffactor_fid, &h_stat_class, "hash_ffactor", "I" },
@@ -616,6 +643,7 @@ const struct {
{ &heap_stat_heap_magic_fid, &heap_stat_class, "heap_magic", "I" },
{ &heap_stat_heap_version_fid, &heap_stat_class, "heap_version", "I" },
{ &heap_stat_heap_metaflags_fid, &heap_stat_class, "heap_metaflags", "I" },
+ { &heap_stat_heap_nblobs_fid, &heap_stat_class, "heap_nblobs", "I" },
{ &heap_stat_heap_nrecs_fid, &heap_stat_class, "heap_nrecs", "I" },
{ &heap_stat_heap_pagecnt_fid, &heap_stat_class, "heap_pagecnt", "I" },
{ &heap_stat_heap_pagesize_fid, &heap_stat_class, "heap_pagesize", "I" },
@@ -668,6 +696,8 @@ const struct {
{ &lock_stat_st_lockers_nowait_fid, &lock_stat_class, "st_lockers_nowait", "J" },
{ &lock_stat_st_region_wait_fid, &lock_stat_class, "st_region_wait", "J" },
{ &lock_stat_st_region_nowait_fid, &lock_stat_class, "st_region_nowait", "J" },
+ { &lock_stat_st_nlockers_hit_fid, &lock_stat_class, "st_nlockers_hit", "J" },
+ { &lock_stat_st_nlockers_reused_fid, &lock_stat_class, "st_nlockers_reused", "J" },
{ &lock_stat_st_hash_len_fid, &lock_stat_class, "st_hash_len", "I" },
{ &lock_stat_st_regsize_fid, &lock_stat_class, "st_regsize", "J" },
{ &log_stat_st_magic_fid, &log_stat_class, "st_magic", "I" },
@@ -740,6 +770,7 @@ const struct {
{ &mpool_stat_st_mvcc_frozen_fid, &mpool_stat_class, "st_mvcc_frozen", "J" },
{ &mpool_stat_st_mvcc_thawed_fid, &mpool_stat_class, "st_mvcc_thawed", "J" },
{ &mpool_stat_st_mvcc_freed_fid, &mpool_stat_class, "st_mvcc_freed", "J" },
+ { &mpool_stat_st_mvcc_reused_fid, &mpool_stat_class, "st_mvcc_reused", "J" },
{ &mpool_stat_st_alloc_fid, &mpool_stat_class, "st_alloc", "J" },
{ &mpool_stat_st_alloc_buckets_fid, &mpool_stat_class, "st_alloc_buckets", "J" },
{ &mpool_stat_st_alloc_max_buckets_fid, &mpool_stat_class, "st_alloc_max_buckets", "J" },
@@ -747,6 +778,8 @@ const struct {
{ &mpool_stat_st_alloc_max_pages_fid, &mpool_stat_class, "st_alloc_max_pages", "J" },
{ &mpool_stat_st_io_wait_fid, &mpool_stat_class, "st_io_wait", "J" },
{ &mpool_stat_st_sync_interrupted_fid, &mpool_stat_class, "st_sync_interrupted", "J" },
+ { &mpool_stat_st_oddfsize_detect_fid, &mpool_stat_class, "st_oddfsize_detect", "I" },
+ { &mpool_stat_st_oddfsize_resolve_fid, &mpool_stat_class, "st_oddfsize_resolve", "I" },
{ &mpool_stat_st_regsize_fid, &mpool_stat_class, "st_regsize", "J" },
{ &mpool_stat_st_regmax_fid, &mpool_stat_class, "st_regmax", "J" },
{ &mutex_stat_st_mutex_align_fid, &mutex_stat_class, "st_mutex_align", "I" },
@@ -775,6 +808,7 @@ const struct {
{ &qam_stat_qs_first_recno_fid, &qam_stat_class, "qs_first_recno", "I" },
{ &qam_stat_qs_cur_recno_fid, &qam_stat_class, "qs_cur_recno", "I" },
{ &rep_stat_st_startup_complete_fid, &rep_stat_class, "st_startup_complete", "I" },
+ { &rep_stat_st_view_fid, &rep_stat_class, "st_view", "I" },
{ &rep_stat_st_log_queued_fid, &rep_stat_class, "st_log_queued", "J" },
{ &rep_stat_st_status_fid, &rep_stat_class, "st_status", "I" },
{ &rep_stat_st_next_lsn_fid, &rep_stat_class, "st_next_lsn", "L" DB_PKG "LogSequenceNumber;" },
@@ -838,10 +872,17 @@ const struct {
{ &repmgr_stat_st_perm_failed_fid, &repmgr_stat_class, "st_perm_failed", "J" },
{ &repmgr_stat_st_msgs_queued_fid, &repmgr_stat_class, "st_msgs_queued", "J" },
{ &repmgr_stat_st_msgs_dropped_fid, &repmgr_stat_class, "st_msgs_dropped", "J" },
+ { &repmgr_stat_st_incoming_queue_gbytes_fid, &repmgr_stat_class, "st_incoming_queue_gbytes", "I" },
+ { &repmgr_stat_st_incoming_queue_bytes_fid, &repmgr_stat_class, "st_incoming_queue_bytes", "I" },
+ { &repmgr_stat_st_incoming_msgs_dropped_fid, &repmgr_stat_class, "st_incoming_msgs_dropped", "J" },
{ &repmgr_stat_st_connection_drop_fid, &repmgr_stat_class, "st_connection_drop", "J" },
{ &repmgr_stat_st_connect_fail_fid, &repmgr_stat_class, "st_connect_fail", "J" },
- { &repmgr_stat_st_elect_threads_fid, &repmgr_stat_class, "st_elect_threads", "J" },
- { &repmgr_stat_st_max_elect_threads_fid, &repmgr_stat_class, "st_max_elect_threads", "J" },
+ { &repmgr_stat_st_elect_threads_fid, &repmgr_stat_class, "st_elect_threads", "I" },
+ { &repmgr_stat_st_max_elect_threads_fid, &repmgr_stat_class, "st_max_elect_threads", "I" },
+ { &repmgr_stat_st_site_participants_fid, &repmgr_stat_class, "st_site_participants", "I" },
+ { &repmgr_stat_st_site_total_fid, &repmgr_stat_class, "st_site_total", "I" },
+ { &repmgr_stat_st_site_views_fid, &repmgr_stat_class, "st_site_views", "I" },
+ { &repmgr_stat_st_takeovers_fid, &repmgr_stat_class, "st_takeovers", "J" },
{ &seq_stat_st_wait_fid, &seq_stat_class, "st_wait", "J" },
{ &seq_stat_st_nowait_fid, &seq_stat_class, "st_nowait", "J" },
{ &seq_stat_st_current_fid, &seq_stat_class, "st_current", "J" },
@@ -930,6 +971,8 @@ const struct {
DB_PKG "internal/DbEnv;)V" },
{ &memex_update_method, &memex_class, "updateDatabaseEntry",
"(L" DB_PKG "DatabaseEntry;)V" },
+ { &metachkfailex_construct, &metachkfailex_class, "<init>",
+ "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" },
{ &repdupmasterex_construct, &repdupmasterex_class, "<init>",
"(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" },
{ &rephandledeadex_construct, &rephandledeadex_class, "<init>",
@@ -967,6 +1010,8 @@ const struct {
"(III[B)I" },
{ &panic_event_notify_method, &dbenv_class, "handle_panic_event_notify",
"()V" },
+ { &rep_autotakeover_failed_event_notify_method, &dbenv_class,
+ "handle_rep_autotakeover_failed_event_notify", "()V" },
{ &rep_connect_broken_event_notify_method, &dbenv_class,
"handle_rep_connect_broken_event_notify", "()V" },
{ &rep_connect_established_event_notify_method, &dbenv_class,
@@ -983,6 +1028,8 @@ const struct {
"handle_rep_election_failed_event_notify" ,"()V" },
{ &rep_init_done_event_notify_method, &dbenv_class,
"handle_rep_init_done_event_notify" , "()V" },
+ { &rep_inqueue_full_event_notify_method, &dbenv_class,
+ "handle_rep_inqueue_full_event_notify" , "()V" },
{ &rep_join_failure_event_notify_method, &dbenv_class,
"handle_rep_join_failure_event_notify" ,"()V" },
{ &rep_master_event_notify_method, &dbenv_class,
@@ -1045,6 +1092,8 @@ const struct {
{ &seckey_create_method, &db_class, "handle_seckey_create",
"(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;)[L"
DB_PKG "DatabaseEntry;" },
+ {&rep_view_method, &dbenv_class, "handle_rep_view",
+ "(Ljava/lang/String;I)Z" },
{ &outputstream_write_method, &outputstream_class, "write", "([BII)V" }
};
@@ -1153,7 +1202,7 @@ static void __dbj_detach()
(void)(*javavm)->DetachCurrentThread(javavm);
}
-static jobject __dbj_wrap_DB_LSN(JNIEnv *jenv, DB_LSN *lsn)
+static jobject __dbj_wrap_DB_LSN(JNIEnv *jenv, const DB_LSN *lsn)
{
return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
lsn->file, lsn->offset);