diff --git a/src/main/java/com/sunyard/sge/database/SydApi4Database.java b/src/main/java/com/sunyard/sge/database/SydApi4Database.java index f101abe..4094c80 100644 --- a/src/main/java/com/sunyard/sge/database/SydApi4Database.java +++ b/src/main/java/com/sunyard/sge/database/SydApi4Database.java @@ -13,9 +13,11 @@ import java.util.List; public class SydApi4Database implements SydApi { private SydApi4j[] hsms = null; + private boolean isShortLinkMode = false; @Deprecated public SydApi4Database() { + isShortLinkMode = true; } public SydApi4Database(SydApi4j[] hsms) { @@ -25,20 +27,23 @@ public class SydApi4Database implements SydApi { @Override public SydApi SYD_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int iDealTimeOut) { SydApi4j api = (SydApi4j) new SydApi4j().connect(pcIpList[0], iPortList[0], null, iConnectTimeOut); - hsms = new SydApi4j[]{ api }; + hsms = new SydApi4j[]{api}; return this; } @Override public void SYD_Disconnect_Ex() { + if (isShortLinkMode) { + SydApi4j api = hsms[0]; + if (null != api) { + try { + api.disconnect(); + } catch (Exception e) { + } + } + api = null; + } // 配合链接池,不再需要释放。 -// if ( null != api ) { -// try { -// api.disconnect(); -// }catch ( Exception e ){ -// } -// } -// api = null; } @Override diff --git a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java index 676e8f6..7239a2a 100644 --- a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java +++ b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java @@ -42,12 +42,25 @@ public class SydApiPool extends ThreadBasedConnectPool { // 保活接口 protected boolean check(SydApi o) { - null != o; + if ( null == o ) { + return false; + } + try { + + o.SYD_SM3_Hash_ShortData( new byte[8] ); + return true; + + }catch ( Exception e) { + // 忽略 + return false; + } } // 释放 protected void free(SydApi o) { - o.SYD_Disconnect_Ex(); + if ( null != o ) { + o.SYD_Disconnect_Ex(); + } } }