장동신 장동신 01-08
클라이언트 IP체크, 큐 DB 적재 로직 수정
@f803f5c5a10112de2cf58e01c88081bfcce63062
src/main/java/com/munjaon/server/queue/pool/QueuePool.java
--- src/main/java/com/munjaon/server/queue/pool/QueuePool.java
+++ src/main/java/com/munjaon/server/queue/pool/QueuePool.java
@@ -64,9 +64,9 @@
     public void pushQueue(BasicMessageDto data) throws Exception {
         synchronized(lockMonitor) {
             if (queuePool.isEmpty()) {
-                try{
+                try {
                     lockMonitor.wait();
-                }catch(InterruptedException e){
+                } catch (InterruptedException e) {
                     // 아무 처리도 하지 않는다.
                 }
             }
src/main/java/com/munjaon/server/queue/pool/ReadQueue.java
--- src/main/java/com/munjaon/server/queue/pool/ReadQueue.java
+++ src/main/java/com/munjaon/server/queue/pool/ReadQueue.java
@@ -195,13 +195,16 @@
             /* Pop Counter 증가 및 저장 */
             this.popCounter = this.popCounter + 1;
             writePopCounter();
-
-
         }
 
         return messageDto;
     }
 
+    public void resetPopCounter(int resetCounter) throws IOException {
+        this.popCounter = this.popCounter - resetCounter;
+        writePopCounter();
+    }
+
     abstract void popBuffer() throws Exception;
     abstract void getBytesForExtendMessage(BasicMessageDto messageDto) throws UnsupportedEncodingException;
     abstract void initDataBuffer();
src/main/java/com/munjaon/server/server/service/QueueServerService.java
--- src/main/java/com/munjaon/server/server/service/QueueServerService.java
+++ src/main/java/com/munjaon/server/server/service/QueueServerService.java
@@ -213,8 +213,18 @@
 
         // DB 처리한 카운트에 대한 처리
         if (DB_PROC_COUNT > 0) {
-            worker.saveMessageForList(list);
-            Thread.sleep(10);
+            boolean isError = false;
+            try {
+                worker.saveMessageForList(list);
+                Thread.sleep(10);
+            } catch (Exception e) {
+                saveLog(e);
+                isError = true;
+            }
+            /* DB 적재 실패시 처리 */
+            if (isError) {
+                readQueue.resetPopCounter(DB_PROC_COUNT);
+            }
         } else {
             Thread.sleep(100);
         }
src/main/java/com/munjaon/server/server/task/CollectServerTask.java
--- src/main/java/com/munjaon/server/server/task/CollectServerTask.java
+++ src/main/java/com/munjaon/server/server/task/CollectServerTask.java
@@ -756,10 +756,10 @@
                     saveLog(printTaskLog() + "[REMOTE IP : " + connectUserDto.getRemoteIP() + "]");
                     saveLog(printTaskLog() + "[ALLOW IP BASIC : " + memberDto.getAllowIpBasic() + "]");
                     saveLog(printTaskLog() + "[ALLOW IP EXTEND : " + memberDto.getAllowIpExtend() + "]");
-                    if (memberDto.getAllowIpBasic() != null && connectUserDto.getRemoteIP().equals(memberDto.getAllowIpBasic())) {
+                    if (memberDto.getAllowIpBasic() != null && connectUserDto.getRemoteIP().indexOf(memberDto.getAllowIpBasic()) >= 0) {
                         isPermit = true;
                     }
-                    if (memberDto.getAllowIpExtend() != null && connectUserDto.getRemoteIP().equals(memberDto.getAllowIpExtend())) {
+                    if (memberDto.getAllowIpExtend() != null && connectUserDto.getRemoteIP().indexOf(memberDto.getAllowIpExtend()) >= 0) {
                         isPermit = true;
                     }
                 } else {
Add a comment
List