Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
d12b77ce
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
d12b77ce
编写于
1月 28, 2021
作者:
Z
zyyang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change
上级
198642e1
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
46 addition
and
348 deletion
+46
-348
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
...dbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
+19
-4
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TDNode.java
...or/jdbc/src/main/java/com/taosdata/jdbc/utils/TDNode.java
+0
-272
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TDNodes.java
...r/jdbc/src/main/java/com/taosdata/jdbc/utils/TDNodes.java
+0
-72
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TaosInfo.java
.../jdbc/src/main/java/com/taosdata/jdbc/utils/TaosInfo.java
+19
-0
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TaosInfoMBean.java
.../src/main/java/com/taosdata/jdbc/utils/TaosInfoMBean.java
+8
-0
未找到文件。
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
浏览文件 @
d12b77ce
...
...
@@ -14,13 +14,19 @@
*****************************************************************************/
package
com.taosdata.jdbc
;
import
com.taosdata.jdbc.utils.TaosInfo
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.util.List
;
import
java.util.concurrent.atomic.AtomicInteger
;
public
class
TSDBJNIConnector
{
private
static
volatile
Boolean
isInitialized
=
false
;
private
static
AtomicInteger
open_count
=
new
AtomicInteger
();
private
static
AtomicInteger
close_count
=
new
AtomicInteger
();
static
{
System
.
loadLibrary
(
"taos"
);
System
.
out
.
println
(
"java.library.path:"
+
System
.
getProperty
(
"java.library.path"
));
...
...
@@ -91,7 +97,8 @@ public class TSDBJNIConnector {
*/
public
boolean
connect
(
String
host
,
int
port
,
String
dbName
,
String
user
,
String
password
)
throws
SQLException
{
if
(
this
.
taos
!=
TSDBConstants
.
JNI_NULL_POINTER
)
{
this
.
closeConnectionImp
(
this
.
taos
);
// this.closeConnectionImp(this.taos);
closeConnection
();
this
.
taos
=
TSDBConstants
.
JNI_NULL_POINTER
;
}
...
...
@@ -99,7 +106,10 @@ public class TSDBJNIConnector {
if
(
this
.
taos
==
TSDBConstants
.
JNI_NULL_POINTER
)
{
throw
new
SQLException
(
TSDBConstants
.
WrapErrMsg
(
this
.
getErrMsg
(
0L
)),
""
,
this
.
getErrCode
(
0
l
));
}
// invoke connectImp only here
int
open
=
open_count
.
incrementAndGet
();
int
close
=
close_count
.
get
();
System
.
out
.
println
(
"open_count: "
+
open
+
", close_count: "
+
close
+
", connection_count: "
+
(
open
-
close
));
return
true
;
}
...
...
@@ -248,6 +258,7 @@ public class TSDBJNIConnector {
}
private
native
int
fetchBlockImp
(
long
connection
,
long
resultSet
,
TSDBResultSetBlockData
blockData
);
/**
* Execute close operation from C to release connection pointer by JNI
*
...
...
@@ -262,6 +273,10 @@ public class TSDBJNIConnector {
}
else
{
throw
new
SQLException
(
"Undefined error code returned by TDengine when closing a connection"
);
}
// invoke closeConnectionImpl only here
int
open
=
open_count
.
get
();
int
close
=
close_count
.
incrementAndGet
();
System
.
out
.
println
(
"open_count: "
+
open
+
", close_count: "
+
close
+
", connection_count: "
+
(
open
-
close
));
}
private
native
int
closeConnectionImp
(
long
connection
);
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TDNode.java
已删除
100644 → 0
浏览文件 @
198642e1
package
com.taosdata.jdbc.utils
;
import
java.io.BufferedReader
;
import
java.io.File
;
import
java.io.InputStreamReader
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
public
class
TDNode
{
private
int
index
;
private
int
running
;
private
int
deployed
;
private
boolean
testCluster
;
private
String
path
;
private
String
cfgDir
;
private
String
dataDir
;
private
String
logDir
;
private
String
cfgPath
;
public
TDNode
(
int
index
)
{
this
.
index
=
index
;
running
=
0
;
deployed
=
0
;
testCluster
=
false
;
}
public
void
setPath
(
String
path
)
{
this
.
path
=
path
;
}
public
void
setTestCluster
(
boolean
testCluster
)
{
this
.
testCluster
=
testCluster
;
}
public
void
setRunning
(
int
running
)
{
this
.
running
=
running
;
}
public
void
searchTaosd
(
File
dir
,
ArrayList
<
String
>
taosdPath
)
{
File
[]
fileList
=
dir
.
listFiles
();
if
(
fileList
==
null
||
fileList
.
length
==
0
)
{
return
;
}
for
(
File
file
:
fileList
)
{
if
(
file
.
isFile
())
{
if
(
file
.
getName
().
equals
(
"taosd"
))
{
taosdPath
.
add
(
file
.
getAbsolutePath
());
}
}
else
{
searchTaosd
(
file
,
taosdPath
);
}
}
}
public
void
start
()
{
String
selfPath
=
System
.
getProperty
(
"user.dir"
);
String
binPath
=
""
;
String
projDir
=
selfPath
+
"/../../../"
;
try
{
ArrayList
<
String
>
taosdPath
=
new
ArrayList
<>();
File
dir
=
new
File
(
projDir
);
String
realProjDir
=
dir
.
getCanonicalPath
();
dir
=
new
File
(
realProjDir
);
System
.
out
.
println
(
"project Dir: "
+
projDir
);
searchTaosd
(
dir
,
taosdPath
);
if
(
taosdPath
.
size
()
==
0
)
{
System
.
out
.
println
(
"The project path doens't exist"
);
return
;
}
else
{
for
(
String
p
:
taosdPath
)
{
if
(!
p
.
contains
(
"packaging"
))
{
binPath
=
p
;
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
binPath
.
isEmpty
())
{
System
.
out
.
println
(
"taosd not found"
);
return
;
}
else
{
System
.
out
.
println
(
"taosd found in "
+
binPath
);
}
if
(
this
.
deployed
==
0
)
{
System
.
out
.
println
(
"dnode"
+
index
+
"is not deployed"
);
return
;
}
String
cmd
=
"nohup "
+
binPath
+
" -c "
+
cfgDir
+
" > /dev/null 2>&1 & "
;
System
.
out
.
println
(
"start taosd cmd: "
+
cmd
);
try
{
Runtime
.
getRuntime
().
exec
(
cmd
);
TimeUnit
.
SECONDS
.
sleep
(
5
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
this
.
running
=
1
;
}
public
Integer
getTaosdPid
()
{
String
cmd
=
"ps -ef|grep -w taosd| grep -v grep | awk '{print $2}'"
;
String
[]
cmds
=
{
"sh"
,
"-c"
,
cmd
};
try
{
Process
process
=
Runtime
.
getRuntime
().
exec
(
cmds
);
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
process
.
getInputStream
()));
String
line
=
null
;
Integer
res
=
null
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
if
(!
line
.
isEmpty
())
{
res
=
Integer
.
valueOf
(
line
);
break
;
}
}
return
res
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
public
void
stop
()
{
if
(
this
.
running
!=
0
)
{
Integer
pid
=
null
;
while
((
pid
=
getTaosdPid
())
!=
null
)
{
String
killCmd
=
"kill -term "
+
pid
;
String
[]
killCmds
=
{
"sh"
,
"-c"
,
killCmd
};
try
{
Runtime
.
getRuntime
().
exec
(
killCmds
).
waitFor
();
TimeUnit
.
SECONDS
.
sleep
(
2
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
try
{
for
(
int
port
=
6030
;
port
<
6041
;
port
++)
{
String
fuserCmd
=
"fuser -k -n tcp "
+
port
;
Runtime
.
getRuntime
().
exec
(
fuserCmd
).
waitFor
();
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
this
.
running
=
0
;
System
.
out
.
println
(
"dnode:"
+
this
.
index
+
" is stopped by kill -term"
);
}
}
public
void
startIP
()
{
try
{
String
cmd
=
"sudo ifconfig lo:"
+
index
+
"192.168.0."
+
index
+
" up"
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
void
stopIP
()
{
try
{
String
cmd
=
"sudo ifconfig lo:"
+
index
+
"192.168.0."
+
index
+
" down"
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
void
setCfgConfig
(
String
option
,
String
value
)
{
try
{
String
cmd
=
"echo "
+
option
+
" "
+
value
+
" >> "
+
this
.
cfgPath
;
String
[]
cmdLine
=
{
"sh"
,
"-c"
,
cmd
};
Process
ps
=
Runtime
.
getRuntime
().
exec
(
cmdLine
);
ps
.
waitFor
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
String
getDnodeRootDir
()
{
String
dnodeRootDir
=
this
.
path
+
"/sim/psim/dnode"
+
this
.
index
;
return
dnodeRootDir
;
}
public
String
getDnodesRootDir
()
{
String
dnodesRootDir
=
this
.
path
+
"/sim/psim"
+
this
.
index
;
return
dnodesRootDir
;
}
public
void
deploy
()
{
this
.
logDir
=
this
.
path
+
"/sim/dnode"
+
this
.
index
+
"/log"
;
this
.
dataDir
=
this
.
path
+
"/sim/dnode"
+
this
.
index
+
"/data"
;
this
.
cfgDir
=
this
.
path
+
"/sim/dnode"
+
this
.
index
+
"/cfg"
;
this
.
cfgPath
=
this
.
path
+
"/sim/dnode"
+
this
.
index
+
"/cfg/taos.cfg"
;
try
{
String
cmd
=
"rm -rf "
+
this
.
logDir
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
cmd
=
"rm -rf "
+
this
.
cfgDir
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
cmd
=
"rm -rf "
+
this
.
dataDir
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
cmd
=
"mkdir -p "
+
this
.
logDir
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
cmd
=
"mkdir -p "
+
this
.
cfgDir
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
cmd
=
"mkdir -p "
+
this
.
dataDir
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
cmd
=
"touch "
+
this
.
cfgPath
;
Runtime
.
getRuntime
().
exec
(
cmd
).
waitFor
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
this
.
testCluster
)
{
startIP
();
setCfgConfig
(
"masterIp"
,
"192.168.0.1"
);
setCfgConfig
(
"secondIp"
,
"192.168.0.2"
);
setCfgConfig
(
"publicIp"
,
"192.168.0."
+
this
.
index
);
setCfgConfig
(
"internalIp"
,
"192.168.0."
+
this
.
index
);
setCfgConfig
(
"privateIp"
,
"192.168.0."
+
this
.
index
);
}
setCfgConfig
(
"dataDir"
,
this
.
dataDir
);
setCfgConfig
(
"logDir"
,
this
.
logDir
);
setCfgConfig
(
"numOfLogLines"
,
"1000000/00"
);
setCfgConfig
(
"mnodeEqualVnodeNum"
,
"0"
);
setCfgConfig
(
"walLevel"
,
"1"
);
setCfgConfig
(
"statusInterval"
,
"1"
);
setCfgConfig
(
"numOfMnodes"
,
"3"
);
setCfgConfig
(
"numOfThreadsPerCore"
,
"2.0"
);
setCfgConfig
(
"monitor"
,
"0"
);
setCfgConfig
(
"maxVnodeConnections"
,
"30000"
);
setCfgConfig
(
"maxMgmtConnections"
,
"30000"
);
setCfgConfig
(
"maxMeterConnections"
,
"30000"
);
setCfgConfig
(
"maxShellConns"
,
"30000"
);
setCfgConfig
(
"locale"
,
"en_US.UTF-8"
);
setCfgConfig
(
"charset"
,
"UTF-8"
);
setCfgConfig
(
"asyncLog"
,
"0"
);
setCfgConfig
(
"anyIp"
,
"0"
);
setCfgConfig
(
"dDebugFlag"
,
"135"
);
setCfgConfig
(
"mDebugFlag"
,
"135"
);
setCfgConfig
(
"sdbDebugFlag"
,
"135"
);
setCfgConfig
(
"rpcDebugFlag"
,
"135"
);
setCfgConfig
(
"tmrDebugFlag"
,
"131"
);
setCfgConfig
(
"cDebugFlag"
,
"135"
);
setCfgConfig
(
"httpDebugFlag"
,
"135"
);
setCfgConfig
(
"monitorDebugFlag"
,
"135"
);
setCfgConfig
(
"udebugFlag"
,
"135"
);
setCfgConfig
(
"jnidebugFlag"
,
"135"
);
setCfgConfig
(
"qdebugFlag"
,
"135"
);
this
.
deployed
=
1
;
}
}
\ No newline at end of file
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TDNodes.java
已删除
100644 → 0
浏览文件 @
198642e1
package
com.taosdata.jdbc.utils
;
import
java.io.File
;
import
java.util.*
;
public
class
TDNodes
{
private
ArrayList
<
TDNode
>
tdNodes
;
private
boolean
testCluster
;
public
TDNodes
()
{
tdNodes
=
new
ArrayList
<>();
for
(
int
i
=
1
;
i
<
11
;
i
++)
{
tdNodes
.
add
(
new
TDNode
(
i
));
}
}
public
void
setTestCluster
(
boolean
testCluster
)
{
this
.
testCluster
=
testCluster
;
}
public
void
check
(
int
index
)
{
if
(
index
<
1
||
index
>
10
)
{
System
.
out
.
println
(
"index: "
+
index
+
" should on a scale of [1, 10]"
);
return
;
}
}
public
void
deploy
(
int
index
)
{
try
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)
+
"/../../../"
);
String
projectRealPath
=
file
.
getCanonicalPath
();
check
(
index
);
tdNodes
.
get
(
index
-
1
).
setTestCluster
(
this
.
testCluster
);
tdNodes
.
get
(
index
-
1
).
setPath
(
projectRealPath
);
tdNodes
.
get
(
index
-
1
).
deploy
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"deploy Test Exception"
);
}
}
public
void
cfg
(
int
index
,
String
option
,
String
value
)
{
check
(
index
);
tdNodes
.
get
(
index
-
1
).
setCfgConfig
(
option
,
value
);
}
public
TDNode
getTDNode
(
int
index
)
{
check
(
index
);
return
tdNodes
.
get
(
index
-
1
);
}
public
void
start
(
int
index
)
{
check
(
index
);
tdNodes
.
get
(
index
-
1
).
start
();
}
public
void
stop
(
int
index
)
{
check
(
index
);
tdNodes
.
get
(
index
-
1
).
stop
();
}
public
void
startIP
(
int
index
)
{
check
(
index
);
tdNodes
.
get
(
index
-
1
).
startIP
();
}
public
void
stopIP
(
int
index
)
{
check
(
index
);
tdNodes
.
get
(
index
-
1
).
stopIP
();
}
}
\ No newline at end of file
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TaosInfo.java
0 → 100644
浏览文件 @
d12b77ce
package
com.taosdata.jdbc.utils
;
import
java.util.concurrent.atomic.AtomicInteger
;
public
class
TaosInfo
implements
TaosInfoMBean
{
public
AtomicInteger
conn
=
new
AtomicInteger
();
public
AtomicInteger
stmt
=
new
AtomicInteger
();
@Override
public
int
getConnectionCount
()
{
return
conn
.
get
();
}
@Override
public
int
getStatementCount
()
{
return
stmt
.
get
();
}
}
src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/TaosInfoMBean.java
0 → 100644
浏览文件 @
d12b77ce
package
com.taosdata.jdbc.utils
;
public
interface
TaosInfoMBean
{
int
getConnectionCount
();
int
getStatementCount
();
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录