程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> oncurrent ash ap-log4j日志存入數據庫的多線程並發問題

oncurrent ash ap-log4j日志存入數據庫的多線程並發問題

編輯:編程綜合問答
log4j日志存入數據庫的多線程並發問題

我使用Mina框架來接收多線程的數據,當我想取得創建時間(從sessionCreated()方法獲得)、session的上下文信息(從messageReceived()方法獲得)以及斷開時間(從sessionClosed()方法獲得)的時候,我使用log4j的MDC來輸出到數據庫。可是問題來了,因為要取得斷開時間,必須得第一個線程斷開後觸發sessionClosed()方法取得斷開時間後才能將第一個線程的所有信息才會存入到數據庫;但是當第一個線程沒斷開,第二個線程就進來了發送數據,而且馬上觸發sessionClosed()線程,那麼它就覆蓋了第一個線程的信息了。使得本來屬於第一個線程的信息取不到了。其中我使用ConcurrentHashMap來存儲進入數據庫前的信息 。不知道有什麼更好的方法可以解決呢?

最佳回答:


數據庫可以共享同一個連接,然後你寫入數據庫,由數據庫自己來做數據並發處理

u011206860
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved