pangs před 5 roky
rodič
revize
2c3ee21651

+ 4 - 0
bridge/src/com/icontrols/bridge/wallpad/IMapMultiSocket.java

@@ -44,12 +44,16 @@ public class IMapMultiSocket{
 		}catch(Exception e) { 
 			logger.error("[IMapMultiSocket] - 메인 에러....    " + e.getMessage());
 			logger.error(e.getStackTrace().toString());
+			
 		} finally {
 			try {
 				server.close();
 			}catch(Exception e) {
 				logger.error("무시.");
 			}
+			
+			logger.info("**************************** 서버 재실행 **********************************");
+			new IMapMultiSocket();
 		}
 		
 	}

+ 61 - 49
bridge/src/com/icontrols/bridge/wallpad/MsgServerHandler.java

@@ -23,6 +23,7 @@ import org.w3c.dom.Node;
 
 import com.google.gson.Gson;
 import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.icontrols.bridge.common.CommonUtil;
 import com.icontrols.bridge.dto.ServiceDetail;
@@ -133,56 +134,67 @@ public class MsgServerHandler extends Thread {
 	    	JsonObject object = CommonUtil.getJsonObject(str);
 	    	JsonArray list = (JsonArray)object.get("services");
 	    	
-	    	list.forEach(jsonObj -> {
+	    	for(JsonElement jsonObj : list) {
 	    		ServiceDetail service = new Gson().fromJson(jsonObj.toString(), ServiceDetail.class);
-	    		if(Arrays.asList(service.getEvents()).contains(eventName)) {
-	    			StringBuffer sb = new StringBuffer();
-	    			
-	    			if(isContainCompany) rcvMsgStr = sb.append(topStr).append(service.getName()).append(bottomStr).toString();
-	    			
-	    			logger.info("ÃÖÁ¾ - \r\n" + rcvMsgStr);
-	    			
-	    			Runnable task = () -> {
-	    				Socket danziSocket = null;
-	    				
-	    				try {
-	    					danziSocket = new Socket();
-	    					danziSocket.setSoLinger(true, 3000);
-	    					danziSocket.setSendBufferSize(SOCKET_BUFFER_SIZE * 1024);
-	    					danziSocket.setSoTimeout(SOCKET_WAIT_TIME);
-	    					
-	    					InetSocketAddress iSocAddr = new InetSocketAddress(service.getAddress(), service.getPort());
-	    					danziSocket.connect(iSocAddr, SOCKET_WAIT_TIME);
-	    					
-	    					DataOutputStream outStream = new DataOutputStream(danziSocket.getOutputStream());
-	    					String sendMsg = rcvMsgStr + "\r\n";
-	    					byte[] outBF = sendMsg.getBytes("euc-kr");
-	    					
-	    					outStream.write(outBF);
-	    					outStream.flush();
-	    					
-	    					logger.info("***************************************************");
-	    					logger.info("   S E N D    T O " + service.getPort() + "  C O M P L I T E ! ! ! !  ");
-	    					logger.info("***************************************************");
-	    				} catch (Exception e) {
-	    					// TODO Auto-generated catch block
-	    					logger.error("***************************************************");
-	    					logger.error("   F A I L   T O "+ service.getPort() + "   S E N D   E V E N T   ! ! ! !  ");
-	    					logger.error("***************************************************");
-	    					e.printStackTrace();
-	    				} finally {
-	    					try {
-	    						Thread.sleep(100);
-	    						danziSocket.close();
-	    					} catch (Exception e) {
-	    						e.printStackTrace();
-	    					}
-	    				}
-	    			};
-	    			
-	    			new Thread(task).start();
-	    		}
-	    	});
+	    		
+	    		if(!Arrays.asList(service.getEvents()).contains(eventName)) continue;
+	    		
+    			StringBuffer sb = new StringBuffer();
+    			
+    			if(isContainCompany) rcvMsgStr = sb.append(topStr).append(service.getName()).append(bottomStr).toString();
+    			
+    			logger.debug("ÃÖÁ¾ - \r\n" + rcvMsgStr);
+    			
+    			Runnable task = () -> {
+    				Socket danziSocket = null;
+    				
+    				try {
+    					danziSocket = new Socket();
+    					danziSocket.setSoLinger(true, 3000);
+    					danziSocket.setSendBufferSize(SOCKET_BUFFER_SIZE * 1024);
+    					danziSocket.setSoTimeout(SOCKET_WAIT_TIME);
+    					
+    					InetSocketAddress iSocAddr = new InetSocketAddress(service.getAddress(), service.getPort());
+    					danziSocket.connect(iSocAddr, SOCKET_WAIT_TIME);
+    					
+    					DataOutputStream outStream = new DataOutputStream(danziSocket.getOutputStream());
+    					String sendMsg = rcvMsgStr + "\r\n";
+    					byte[] outBF = sendMsg.getBytes("euc-kr");
+    					
+    					outStream.write(outBF);
+    					outStream.flush();
+    					
+    					StringBuffer logSB = new StringBuffer();
+    					
+    					logSB.append("\n***************************************************\n")
+    					.append("   S E N D    T O " + service.getPort() + "  C O M P L I T E ! ! ! !  \n")
+    					.append("***************************************************");
+    					
+    					logger.info(logSB.toString());
+    				} catch (Exception e) {
+    					// TODO Auto-generated catch block
+    					
+    					StringBuffer errSB = new StringBuffer();
+    					
+    					errSB.append("\n***************************************************\n")
+    					.append("   F A I L   T O \"+ service.getPort() + \"   S E N D   E V E N T   ! ! ! !  \n")
+    					.append("   ERROR MESSAGE = " + e.getMessage() + " \n")
+    					.append("***************************************************");
+    					
+    					logger.error(errSB.toString());
+    					
+    					e.printStackTrace();
+    				} finally {
+    					try {
+    						Thread.sleep(100);
+    						danziSocket.close();
+    					} catch (Exception e) {
+    						e.printStackTrace();
+    					}
+    				}
+    			};
+    			new Thread(task).start();
+	    	}
 		} catch (IOException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();

+ 2 - 2
bridge/src/main/resources/logback.xml

@@ -6,7 +6,7 @@
         <prudent>true</prudent>
 
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>/service/log/Bridge_Log_%d{yyyy-MM-dd}.log</fileNamePattern>
+            <fileNamePattern>log/Bridge_Log_%d{yyyy-MM-dd}.log</fileNamePattern>
             <maxHistory>30</maxHistory>
         </rollingPolicy>
         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
@@ -24,7 +24,7 @@
     	</layout>
   </appender>
   
-    <logger name="com.icontrols.bridge" level="DEBUG"></logger>
+    <logger name="com.icontrols.bridge" level="INFO"></logger>
 
     <root level="INFO">
         <appender-ref ref="dailyRollingFileAppender" />