Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
23e0c62d
提交
23e0c62d
authored
16 年前
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
New system property h2.maxReconnect.
上级
052a305c
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
22 行增加
和
13 行删除
+22
-13
CommandRemote.java
h2/src/main/org/h2/command/CommandRemote.java
+8
-8
SysProperties.java
h2/src/main/org/h2/constant/SysProperties.java
+6
-0
SessionRemote.java
h2/src/main/org/h2/engine/SessionRemote.java
+8
-5
没有找到文件。
h2/src/main/org/h2/command/CommandRemote.java
浏览文件 @
23e0c62d
...
...
@@ -57,7 +57,7 @@ public class CommandRemote implements CommandInterface {
id
=
s
.
getNextId
();
paramCount
=
0
;
boolean
readParams
=
s
.
getClientVersion
()
>=
Constants
.
TCP_PROTOCOL_VERSION_6
;
for
(
int
i
=
0
;
i
<
transferList
.
size
();
i
++)
{
for
(
int
i
=
0
,
count
=
0
;
i
<
transferList
.
size
();
i
++)
{
try
{
Transfer
transfer
=
(
Transfer
)
transferList
.
get
(
i
);
if
(
readParams
&&
createParams
)
{
...
...
@@ -84,7 +84,7 @@ public class CommandRemote implements CommandInterface {
}
}
}
catch
(
IOException
e
)
{
s
.
removeServer
(
e
,
i
--);
s
.
removeServer
(
e
,
i
--
,
++
count
);
}
}
}
...
...
@@ -116,7 +116,7 @@ public class CommandRemote implements CommandInterface {
}
int
objectId
=
session
.
getNextId
();
ResultRemote
result
=
null
;
for
(
int
i
=
0
;
i
<
transferList
.
size
();
i
++)
{
for
(
int
i
=
0
,
count
=
0
;
i
<
transferList
.
size
();
i
++)
{
prepareIfRequired
();
Transfer
transfer
=
(
Transfer
)
transferList
.
get
(
i
);
try
{
...
...
@@ -128,7 +128,7 @@ public class CommandRemote implements CommandInterface {
result
=
new
ResultRemote
(
session
,
transfer
,
objectId
,
columnCount
,
Integer
.
MAX_VALUE
);
break
;
}
catch
(
IOException
e
)
{
session
.
removeServer
(
e
,
i
--);
session
.
removeServer
(
e
,
i
--
,
++
count
);
}
}
session
.
autoCommitIfCluster
();
...
...
@@ -141,7 +141,7 @@ public class CommandRemote implements CommandInterface {
synchronized
(
session
)
{
int
objectId
=
session
.
getNextId
();
ResultRemote
result
=
null
;
for
(
int
i
=
0
;
i
<
transferList
.
size
();
i
++)
{
for
(
int
i
=
0
,
count
=
0
;
i
<
transferList
.
size
();
i
++)
{
prepareIfRequired
();
Transfer
transfer
=
(
Transfer
)
transferList
.
get
(
i
);
try
{
...
...
@@ -169,7 +169,7 @@ public class CommandRemote implements CommandInterface {
break
;
}
}
catch
(
IOException
e
)
{
session
.
removeServer
(
e
,
i
--);
session
.
removeServer
(
e
,
i
--
,
++
count
);
}
}
session
.
autoCommitIfCluster
();
...
...
@@ -182,7 +182,7 @@ public class CommandRemote implements CommandInterface {
synchronized
(
session
)
{
int
updateCount
=
0
;
boolean
autoCommit
=
false
;
for
(
int
i
=
0
;
i
<
transferList
.
size
();
i
++)
{
for
(
int
i
=
0
,
count
=
0
;
i
<
transferList
.
size
();
i
++)
{
prepareIfRequired
();
Transfer
transfer
=
(
Transfer
)
transferList
.
get
(
i
);
try
{
...
...
@@ -193,7 +193,7 @@ public class CommandRemote implements CommandInterface {
updateCount
=
transfer
.
readInt
();
autoCommit
=
transfer
.
readBoolean
();
}
catch
(
IOException
e
)
{
session
.
removeServer
(
e
,
i
--);
session
.
removeServer
(
e
,
i
--
,
++
count
);
}
}
session
.
setAutoCommit
(
autoCommit
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/constant/SysProperties.java
浏览文件 @
23e0c62d
...
...
@@ -278,6 +278,12 @@ public class SysProperties {
*/
public
static
final
int
MAX_QUERY_TIMEOUT
=
getIntSetting
(
H2_MAX_QUERY_TIMEOUT
,
0
);
/**
* System property <code>h2.maxReconnect</code> (default: 3).<br />
* The maximum number of tries to reconnect in a row.
*/
public
static
final
int
MAX_RECONNECT
=
getIntSetting
(
"h2.maxReconnect"
,
3
);
/**
* System property <code>h2.maxTraceDataLength</code> (default: 65535).<br />
* The maximum size of a LOB value that is written as data to the trace system.
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/engine/SessionRemote.java
浏览文件 @
23e0c62d
...
...
@@ -181,14 +181,14 @@ public class SessionRemote implements SessionInterface, DataHandler {
// server side auto commit is off because of race conditions
// (update set id=1 where id=0, but update set id=2 where id=0 is
// faster)
for
(
int
i
=
0
;
i
<
transferList
.
size
();
i
++)
{
for
(
int
i
=
0
,
count
=
0
;
i
<
transferList
.
size
();
i
++)
{
Transfer
transfer
=
(
Transfer
)
transferList
.
get
(
i
);
try
{
traceOperation
(
"COMMAND_COMMIT"
,
0
);
transfer
.
writeInt
(
SessionRemote
.
COMMAND_COMMIT
);
done
(
transfer
);
}
catch
(
IOException
e
)
{
removeServer
(
e
,
i
--);
removeServer
(
e
,
i
--
,
++
count
);
}
}
}
...
...
@@ -382,9 +382,9 @@ public class SessionRemote implements SessionInterface, DataHandler {
* @param e the exception (used for debugging)
* @param i the index of the server to remove
*/
public
void
removeServer
(
IOException
e
,
int
i
)
throws
SQLException
{
public
void
removeServer
(
IOException
e
,
int
i
,
int
count
)
throws
SQLException
{
transferList
.
remove
(
i
);
if
(
autoReconnect
())
{
if
(
autoReconnect
(
count
))
{
return
;
}
checkClosed
();
...
...
@@ -403,13 +403,16 @@ public class SessionRemote implements SessionInterface, DataHandler {
*
* @return true if reconnected
*/
public
boolean
autoReconnect
()
throws
SQLException
{
public
boolean
autoReconnect
(
int
count
)
throws
SQLException
{
if
(!
isClosed
())
{
return
false
;
}
if
(!
autoReconnect
||
!
autoCommit
)
{
return
false
;
}
if
(
count
>
SysProperties
.
MAX_RECONNECT
)
{
return
false
;
}
lastReconnect
++;
embedded
=
connectEmbeddedOrServer
();
if
(
embedded
==
this
)
{
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论