diff --git a/src/main/java/com/sunyard/sge/database/SydApi4Database.java b/src/main/java/com/sunyard/sge/database/SydApi4Database.java index 35f541c..a1b402f 100644 --- a/src/main/java/com/sunyard/sge/database/SydApi4Database.java +++ b/src/main/java/com/sunyard/sge/database/SydApi4Database.java @@ -30,6 +30,10 @@ public class SydApi4Database implements SydApi { this.hsms = hsms; } + public SydApi4j[] getHsms() { + return hsms; + } + @Override public SydApi SYD_Short_Connect_Ex(String[] pcIpList, int[] iPortList, int iConnectTimeOut, int allDealTimeOut) { Logger log = LogFactory.getLogger(); 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 92c7504..07ccd0a 100644 --- a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java +++ b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java @@ -55,19 +55,24 @@ public class SydApiPool extends ThreadBasedConnectPool { } // 保活接口 - protected boolean check(SydApi o) { - if ( null == o ) { + protected boolean check(SydApi4Database o) { + if (null==o) { return false; } - try { + SydApi4j[] hsms = o.getHsms(); + for (SydApi4j hsm : hsms) { + if ( null != hsm ) { + try { + o.SYD_SM3_Hash_ShortData( new byte[8] ); + return true; - o.SYD_SM3_Hash_ShortData( new byte[8] ); - return true; - - }catch ( Exception e) { - // 忽略 - return false; + }catch ( Exception e) { + // 忽略 + return false; + } + } } + return false; } // 释放