From c9726dcd5926828c6bb19ebfda69f54a7b8a835f Mon Sep 17 00:00:00 2001 From: cheney Date: Fri, 5 Aug 2022 18:47:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=B1=A0=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sunyard/sge/database/SydApi4Database.java | 21 ++++++++++++------- .../sunyard/sge/database/pool/SydApiPool.java | 17 +++++++++++++-- 2 files changed, 28 insertions(+), 10 deletions(-) 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(); + } } }