X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cass%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fdao%2FCassAccess.java;h=4246d3140e2942e77d78fd29e2ae3f5d9729870d;hb=74300061e1ea941f603b1563b3fc8d8026902b2a;hp=b8062fcde84e99c1e626623a69c600e85f56bb91;hpb=7e966914050e66219689001ff4ab601a49eef0ac;p=aaf%2Fauthz.git diff --git a/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CassAccess.java b/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CassAccess.java index b8062fcd..4246d314 100644 --- a/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CassAccess.java +++ b/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CassAccess.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -34,6 +34,7 @@ import org.onap.aaf.misc.env.util.Split; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Cluster.Builder; +import com.datastax.driver.core.SocketOptions; import com.datastax.driver.core.policies.DCAwareRoundRobinPolicy; import com.datastax.driver.core.policies.TokenAwarePolicy; @@ -92,7 +93,7 @@ public class CassAccess { cb.withCredentials(str, env.decryptor().decrypt(epass)); } } - + str = env.getProperty(pre+CASSANDRA_RESET_EXCEPTIONS,env.getProperty(CASSANDRA_RESET_EXCEPTIONS,null)); if (str!=null) { env.init().log("Cass ResetExceptions = ",str ); @@ -100,19 +101,19 @@ public class CassAccess { resetExceptions.add(new Resettable(env,ex)); } } - + str = env.getProperty(Config.CADI_LATITUDE); - Double lat = str!=null?Double.parseDouble(str):null; + Double lat = str!=null && !str.isEmpty()?Double.parseDouble(str):null; str = env.getProperty(Config.CADI_LONGITUDE); - Double lon = str!=null?Double.parseDouble(str):null; + Double lon = str!=null && !str.isEmpty()?Double.parseDouble(str):null; if (lat == null || lon == null) { throw new APIException(Config.CADI_LATITUDE + " and/or " + Config.CADI_LONGITUDE + " are not set"); } - + env.init().printf("Service Latitude,Longitude = %f,%f",lat,lon); - + str = env.getProperty(pre+CASSANDRA_CLUSTERS,env.getProperty(CASSANDRA_CLUSTERS,"localhost")); - env.init().log("Cass Clusters = ",str ); + env.init().printf("Cass Clusters = '%s'\n",str ); String[] machs = Split.split(',', str); String[] cpoints = new String[machs.length]; String bestDC = null; @@ -123,7 +124,7 @@ public class CassAccess { if (minfo.length>0) { cpoints[i]=minfo[0]; } - + if (minfo.length>3) { if (minfo[1].equals(bestDC)) { ++numInBestDC; @@ -142,9 +143,9 @@ public class CassAccess { } } } - + cb.addContactPoints(cpoints); - + if (bestDC!=null) { // 8/26/2016 Management has determined that Accuracy is preferred over speed in bad situations // Local DC Aware Load Balancing appears to have the highest normal performance, with the best @@ -162,13 +163,14 @@ public class CassAccess { env.init().printf("Cassandra is using Default Policy, which is not DC aware"); } } + cb.withSocketOptions(new SocketOptions().setReadTimeoutMillis(6500000)); return cb.build(); } - + private static class Resettable { private Class cls; private List messages; - + @SuppressWarnings("unchecked") public Resettable(Env env, String propData) throws APIException { if (propData!=null && propData.length()>1) { @@ -193,7 +195,7 @@ public class CassAccess { } } } - + public boolean matches(Exception ex) { if (ex.getClass().equals(cls)) { if (messages!=null) { @@ -208,16 +210,16 @@ public class CassAccess { return false; } } - + public static final boolean isResetException(Exception e) { if (e==null) { return true; } for (Resettable re : resetExceptions) { if (re.matches(e)) { - return true; + return false; } } - return false; + return true; } }