Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
934005ba
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
934005ba
编写于
7月 27, 2023
作者:
H
huolibo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(driver): add committed assignment API for jdbc
上级
0438229f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
122 addition
and
1 deletion
+122
-1
source/client/jni/com_taosdata_jdbc_tmq_TMQConnector.h
source/client/jni/com_taosdata_jdbc_tmq_TMQConnector.h
+15
-0
source/client/src/clientTmqConnector.c
source/client/src/clientTmqConnector.c
+107
-1
未找到文件。
source/client/jni/com_taosdata_jdbc_tmq_TMQConnector.h
浏览文件 @
934005ba
...
@@ -92,6 +92,10 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqSubscriptionIm
...
@@ -92,6 +92,10 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqSubscriptionIm
*/
*/
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitSync
(
JNIEnv
*
,
jobject
,
jlong
,
jlong
);
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitSync
(
JNIEnv
*
,
jobject
,
jlong
,
jlong
);
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitAllSync
(
JNIEnv
*
,
jobject
,
jlong
);
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitOffsetSyncImp
(
JNIEnv
*
,
jobject
,
jlong
,
jstring
,
jint
,
jlong
);
/*
/*
* Class: com_taosdata_jdbc_tmq_TMQConnector
* Class: com_taosdata_jdbc_tmq_TMQConnector
* Method: tmqCommitAsync
* Method: tmqCommitAsync
...
@@ -102,6 +106,12 @@ JNIEXPORT void JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitAsync(JN
...
@@ -102,6 +106,12 @@ JNIEXPORT void JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitAsync(JN
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitAsync
(
JNIEnv
*
,
jobject
,
jlong
,
jlong
,
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitAsync
(
JNIEnv
*
,
jobject
,
jlong
,
jlong
,
jobject
);
jobject
);
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitAllAsync
(
JNIEnv
*
,
jobject
,
jlong
,
jobject
);
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitOffsetAsync
(
JNIEnv
*
,
jobject
,
jlong
,
jstring
,
jint
,
jlong
,
jobject
);
/*
/*
* Class: com_taosdata_jdbc_tmq_TMQConnector
* Class: com_taosdata_jdbc_tmq_TMQConnector
* Method: tmqUnsubscribeImp
* Method: tmqUnsubscribeImp
...
@@ -179,6 +189,11 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqSeekImp(JNIEnv
...
@@ -179,6 +189,11 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqSeekImp(JNIEnv
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqGetTopicAssignmentImp
(
JNIEnv
*
,
jobject
,
jlong
,
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqGetTopicAssignmentImp
(
JNIEnv
*
,
jobject
,
jlong
,
jstring
,
jobject
);
jstring
,
jobject
);
JNIEXPORT
jlong
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommittedImp
(
JNIEnv
*
,
jobject
,
jlong
,
jstring
,
jint
);
JNIEXPORT
jlong
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqPositionImp
(
JNIEnv
*
,
jobject
,
jlong
,
jstring
,
jint
);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
...
...
source/client/src/clientTmqConnector.c
浏览文件 @
934005ba
...
@@ -291,6 +291,39 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitSync(JNI
...
@@ -291,6 +291,39 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitSync(JNI
TAOS_RES
*
res
=
(
TAOS_RES
*
)
jres
;
TAOS_RES
*
res
=
(
TAOS_RES
*
)
jres
;
return
tmq_commit_sync
(
tmq
,
res
);
return
tmq_commit_sync
(
tmq
,
res
);
}
}
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitAllSync
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
)
{
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
if
(
tmq
==
NULL
)
{
jniError
(
"jobj:%p, tmq is closed"
,
jobj
);
return
TMQ_CONSUMER_NULL
;
}
return
tmq_commit_sync
(
tmq
,
NULL
);
}
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitOffsetSyncImp
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
jstring
jtopic
,
jint
vgId
,
jlong
offset
)
{
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
if
(
tmq
==
NULL
)
{
jniDebug
(
"jobj:%p, tmq is closed"
,
jobj
);
return
TMQ_CONSUMER_NULL
;
}
if
(
jtopic
==
NULL
)
{
jniDebug
(
"jobj:%p, topic is null"
,
jobj
);
return
TMQ_TOPIC_NULL
;
}
const
char
*
topicName
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jtopic
,
NULL
);
int
code
=
tmq_commit_offset_sync
(
tmq
,
topicName
,
vgId
,
offset
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
jniError
(
"jobj:%p, tmq commit offset error, code:%d, msg:%s"
,
jobj
,
code
,
tmq_err2str
(
code
));
}
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jtopic
,
topicName
);
return
code
;
}
// deprecated
// deprecated
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitAsync
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommitAsync
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
...
@@ -319,6 +352,27 @@ JNIEXPORT void JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitAsy
...
@@ -319,6 +352,27 @@ JNIEXPORT void JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitAsy
tmq_commit_async
(
tmq
,
res
,
consumer_callback
,
offset
);
tmq_commit_async
(
tmq
,
res
,
consumer_callback
,
offset
);
}
}
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitAllAsync
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
jobject
offset
)
{
tmqGlobalMethod
(
env
);
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
offset
=
(
*
env
)
->
NewGlobalRef
(
env
,
offset
);
tmq_commit_async
(
tmq
,
NULL
,
consumer_callback
,
offset
);
}
JNIEXPORT
void
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_consumerCommitOffsetAsync
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
jstring
jtopic
,
jint
vgId
,
jlong
offset
,
jobject
callback
)
{
tmqGlobalMethod
(
env
);
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
const
char
*
topicName
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jtopic
,
NULL
);
callback
=
(
*
env
)
->
NewGlobalRef
(
env
,
callback
);
tmq_commit_offset_async
(
tmq
,
topicName
,
vgId
,
offset
,
consumer_callback
,
callback
);
}
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqUnsubscribeImp
(
JNIEnv
*
env
,
jobject
jobj
,
JNIEXPORT
jint
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqUnsubscribeImp
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
)
{
jlong
jtmq
)
{
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
...
@@ -497,9 +551,9 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqGetTopicAssign
...
@@ -497,9 +551,9 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqGetTopicAssign
int32_t
res
=
tmq_get_topic_assignment
(
tmq
,
topicName
,
&
pAssign
,
&
numOfAssignment
);
int32_t
res
=
tmq_get_topic_assignment
(
tmq
,
topicName
,
&
pAssign
,
&
numOfAssignment
);
if
(
res
!=
TSDB_CODE_SUCCESS
)
{
if
(
res
!=
TSDB_CODE_SUCCESS
)
{
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jtopic
,
topicName
);
jniError
(
"jobj:%p, tmq get topic assignment error, topic:%s, code:%d, msg:%s"
,
jobj
,
topicName
,
res
,
jniError
(
"jobj:%p, tmq get topic assignment error, topic:%s, code:%d, msg:%s"
,
jobj
,
topicName
,
res
,
tmq_err2str
(
res
));
tmq_err2str
(
res
));
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jtopic
,
topicName
);
tmq_free_assignment
(
pAssign
);
tmq_free_assignment
(
pAssign
);
return
(
jint
)
res
;
return
(
jint
)
res
;
}
}
...
@@ -518,3 +572,55 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqGetTopicAssign
...
@@ -518,3 +572,55 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_tmq_TMQConnector_tmqGetTopicAssign
tmq_free_assignment
(
pAssign
);
tmq_free_assignment
(
pAssign
);
return
JNI_SUCCESS
;
return
JNI_SUCCESS
;
}
}
JNIEXPORT
jlong
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqCommittedImp
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
jstring
jtopic
,
jint
vgId
)
{
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
if
(
tmq
==
NULL
)
{
jniDebug
(
"jobj:%p, tmq is closed"
,
jobj
);
return
TMQ_CONSUMER_NULL
;
}
if
(
jtopic
==
NULL
)
{
jniDebug
(
"jobj:%p, topic is null"
,
jobj
);
return
TMQ_TOPIC_NULL
;
}
const
char
*
topicName
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jtopic
,
NULL
);
int64_t
offset
=
tmq_committed
(
tmq
,
topicName
,
vgId
);
if
(
offset
<
JNI_SUCCESS
)
{
jniError
(
"jobj:%p, tmq get committed offset error, topic:%s, vgId:%d, code:0x%"
PRIx64
", msg:%s"
,
jobj
,
topicName
,
vgId
,
offset
,
tmq_err2str
(
offset
));
}
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jtopic
,
topicName
);
return
(
jlong
)
offset
;
}
JNIEXPORT
jlong
JNICALL
Java_com_taosdata_jdbc_tmq_TMQConnector_tmqPositionImp
(
JNIEnv
*
env
,
jobject
jobj
,
jlong
jtmq
,
jstring
jtopic
,
jint
vgId
)
{
tmq_t
*
tmq
=
(
tmq_t
*
)
jtmq
;
if
(
tmq
==
NULL
)
{
jniDebug
(
"jobj:%p, tmq is closed"
,
jobj
);
return
TMQ_CONSUMER_NULL
;
}
if
(
jtopic
==
NULL
)
{
jniDebug
(
"jobj:%p, topic is null"
,
jobj
);
return
TMQ_TOPIC_NULL
;
}
const
char
*
topicName
=
(
*
env
)
->
GetStringUTFChars
(
env
,
jtopic
,
NULL
);
int64_t
offset
=
tmq_position
(
tmq
,
topicName
,
vgId
);
if
(
offset
<
JNI_SUCCESS
)
{
jniError
(
"jobj:%p, tmq get position error, topic:%s, vgId:%d, code:0x%"
PRIx64
", msg:%s"
,
jobj
,
topicName
,
vgId
,
offset
,
tmq_err2str
(
offset
));
}
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
jtopic
,
topicName
);
return
(
jlong
)
offset
;
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录