AppSync:檔案系統對應失敗,並顯示「HeapDumpOnOutOfMemoryError」
Summary: AppSync:使用者無法在 AppSync 2.2.3 中成功對應檔案系統
Symptoms
AppSync 工作當機,後續工作無法執行。
在 AppSync 伺服器記錄 (AppSync 伺服器上的 C:\EMC\AppSync\jboss\logs\server.log) 中,我們看到 AppSync 伺服器服務在這裡重新啟動...。
07-30-2016 01:10:13.494 INFO [MSC 服務執行緒 1-1] [org.jboss.as.naming] [] [] JBAS011802: 開始命名服務
07-30-2016 01:10:14.823 INFO [MSC 服務執行緒 1-7] [org.jboss.ws.common.management.AbstractServerConfig] [] [] JBoss Web 服務 - 堆疊 CXF 伺服器 4.0.2.GA
在 AppSync Executive 記錄 (AppSync 伺服器上的 C:\EMC\AppSync\jboss\logs\executive.log) 中,我們看到下列記憶體不足錯誤:
4098664.623:[完整 GC
[PSYoungGen: 384064K->384062K(404032K)] [ParOldGen: 1398143K->1398143K(1398144K)] 1782207K->1782205K(1802176K) [PSPermGen: 157954K->157954K(158272K)], 1.4650114 秒] [時間:使用者=5.06 系統=0.00,真實=1.47 秒]
關機失敗:等待來自 JVM 的訊號已逾時。
將事件「jvm_kill」排入佇列
4098666.090:[完整 GC
JVM 未於要求時結束,已終止
將事件「jvm_killed」排入佇列
將事件「jvm_stopped」排入住列
通訊端讀取失敗。(遠端主機強行關閉了現有連線。(0x2746))
正在關閉後端通訊端。
正在準備使用模式 4 重新啟動。
JVM 僅執行 -547624 秒,導致重新開始計數 1 失敗。
將事件「jvm_failed_invocation」排入佇列
等待 5 秒,然後再啟動另一個 JVM。
伺服器正在接聽連接埠 32000。
Ping 設定:wrapper.ping.interval=5, wrapper.ping.interval.logged=1, wrapper.ping.timeout=300
將事件「jvm_restart」排入佇列
將事件「jvm_prelaunch」排入佇列
正在啟動 JVM...
命令:"_jre\bin\java" -server -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintCommandLineFlags -XX:+UseCompressedOops -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=false -Dorg.jboss.resolver.warning=true -Dorg.tanukisoftware.wrapper.WrapperManager.mbean=false -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dorg.jboss.boot.log.file=logs/boot.log -Dlogging.configuration=file:standalone/configuration/logging.properties -Djboss.server.log.dir=logs -Dappsync.server=SVRAPPSYNC.PHYSIOCORP.COM -Dfile.encoding=UTF8 -Duser.language=en -Djava.library.path="executive;../CST/builds/win_vc100_x64_r/bin" -classpath "executive/wrapper.jar;./jboss-modules.jar" -Dwrapper.key="g6PkoEa65igOyT26W3eDRDQ6_Kektd7Q" -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.debug="TRUE" -Dwrapper.pid=3408 -Dwrapper.version="3.5.14-pro" -Dwrapper.native_library="wrapper" -Dwrapper.service="TRUE" -Dwrapper.cpu.timeout="10" -Dwrapper.jvmid=2 -Dwrapper.lang.domain=wrapper -Dwrapper.lang.folder=../lang org.tanukisoftware.wrapper.WrapperJarApp jboss-modules.jar -mp modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone -Djboss.home.dir=.
JVM started (PID=7788)
將事件「jvm_start」排入佇列
-XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=2147483648 -XX:MaxPermSize=536870912 -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
WrapperManager 偵錯:WrapperManager 類別由執行緒初始化:主要 使用類別載入器:sun.misc.Launcher$AppClassLoader@78d5c653
WrapperManager: 正在初始化...
WrapperManager 偵錯:JVM #2
WrapperManager 偵錯:正在執行 64 位元 JVM。
WrapperManager 偵錯:org.tanukisoftware.wrapper.WrapperManager 套件資訊:
WrapperManager 偵錯: 實作標題:org.tanukisoftware.wrapper
WrapperManager 偵錯: 實作廠商:Tanuki Software, Ltd.
WrapperManager 偵錯: 實作版本:3.5.14
WrapperManager 偵錯: 是密封的嗎?:False
WrapperManager 偵錯:org.tanukisoftware.wrapper.WrapperManager 寶物網域:
WrapperManager 偵錯: 位置:file:/C:/EMC/AppSync/jboss/executive/wrapper.jar
WrapperManager 偵錯: 大小:117,262
WrapperManager 偵錯: MD5:3a16b23744071559f42f26c48b36e756
WrapperManager 偵錯:正在註冊關機勾點
WrapperManager 偵錯:正在使用包裝函式
WrapperManager 偵錯載入原生程式庫。 有多個可能的檔案名稱,將使用找到的第一個檔案名稱。 載入不存在的檔案時發生錯誤是正常的,只有當全部都失敗時才是一個問題。
WrapperManager 偵錯 嘗試載入名為:wrapper-windows-x86-64.dll 的原生程式庫 結果:java.library.path 中沒有 wrapper-windows-x86-64
WrapperManager 偵錯: 嘗試載入名為:wrapper.dll 的原生程式庫 結果:成功!
WrapperManager 偵錯: 已成功載入原生程式庫。
WrapperManager 偵錯:已載入本地化資源。
WrapperManager 偵錯:呼叫原生初始化方法。
WrapperJNI 偵錯:初始化 WrapperManager 原生程式庫。
WrapperJNI 偵錯:Java 可執行檔:C:\EMC\AppSync\jboss\_jre\bin\java.exe
WrapperJNI 偵錯:原生程式庫:C:\EMC\AppSync\jboss\executive\wrapper.dll
WrapperJNI 偵錯:Windows 版本:6.2.9200
WrapperManager 偵錯:Java 版本:1.7.0_17-b02 Java HotSpot(TM) 64 位元伺服器 VM
WrapperManager 偵錯:Java VM 廠商:Oracle Corporation
WrapperManager 偵錯:作業系統名稱 :Windows Server 2012
WrapperManager 偵錯:作業系統架構 :amd64
WrapperManager 偵錯:
WrapperManager 偵錯:控制事件監視器執行緒已啟動。
WrapperManager 偵錯:啟動執行程式執行緒已啟動。
WrapperJarApp 偵錯:Jar 主類別:org.jboss.modules.Main
WrapperJarApp 偵錯:Jar 類別路徑:未指定。
WrapperJarApp 偵錯: Classpath[0]=file:C:/EMC/AppSync/jboss/jboss-modules.jar
WrapperManager 偵錯:WrapperManager.start(org.tanukisoftware.wrapper.WrapperJarApp@5bfa19ca, args["-mp", "modules", "-jaxpmodule", "javax.xml.jaxp-provider", "org.jboss.as.standalone", "-Djboss.home.dir=."]) 由執行緒:主要呼叫
WrapperManager 偵錯:通訊執行程式執行緒已啟動。
WrapperManager 偵錯:開啟與包裝函式的通訊端...Wrapper-Connection
WrapperManager 偵錯:已開啟從 31,000 到 32,000 的通訊端
WrapperManager 偵錯:傳送封包金鑰:g6PkoEa65igOyT26W3eDRDQ6_Kektd7Q
WrapperManager 偵錯:handleBackend()
已接受來自連接埠 31000 上 127.0.0.1 的通訊端
正在關閉後端伺服器。
讀取封包金鑰:g6PkoEa65igOyT26W3eDRDQ6_Kektd7Q
已取得來自 JVM 的金鑰:g6PkoEa65igOyT26W3eDRDQ6_Kektd7Q
傳送封包 LOW_LOG_LEVEL:1
傳送封包記錄檔:logs\executive.log
傳送封包屬性:(屬性值)
啟動應用程式。
傳送封包開始:開始
WrapperManager 偵錯:已收到封包 LOW_LOG_LEVEL:1
WrapperManager 偵錯:來自包裝函式的 LowLogLevel 為 1
WrapperManager 偵錯:已收到封包記錄檔:logs\executive.log
WrapperManager 偵錯:已收到封包屬性:(屬性值)
WrapperManager 偵錯:已收到封包開始:開始
WrapperManager 偵錯:Java 臨時目錄:C:\Windows\TEMP
WrapperManager 偵錯:正在呼叫 WrapperListener.start()
WrapperManager 偵錯:WrapperListener.start 執行程式執行緒已啟動。
WrapperJarApp 偵錯:start(args) 將等待主方法完成最多 2 秒。
WrapperJarApp 偵錯:正在叫用主方法
WrapperManager 偵錯:傳送封包 START_PENDING:5000
讀取封包 START_PENDING:5000
JVM 發出啟動待處理訊號,waitHint 為 5000 毫秒。
WrapperManager 偵錯:傳送封包 START_PENDING:5000
WrapperJarApp 偵錯:start(args) 結束。 Main Completed=false, exitCode=null
WrapperManager 偵錯:已從 WrapperListener.start() 傳回
WrapperManager 偵錯:傳送封包已開始:
WrapperManager 偵錯:WrapperListener.start 執行程式執行緒已停止。
WrapperManager 偵錯:啟動執行程式執行緒已停止。
讀取封包 START_PENDING:5000
JVM 發出啟動待處理訊號,waitHint 為 5000 毫秒。
讀取封包已開始:
JVM 已發出其已啟動的訊號。
將事件「jvm_started」排入佇列
傳送封包 PING:ping
WrapperManager 偵錯:已收到封包 PING:ping
WrapperManager 偵錯:傳送封包 PING:ping
讀取封包 PING:ping
資訊 (WrapperJarAppMain) 2016-07-30 01:10:02,400 [org.jboss.modules] 模組 JBoss 模組版本 1.1.1.GA
傳送封包 PING:ping
WrapperManager 偵錯:已收到封包 PING:ping
WrapperManager 偵錯:傳送封包 PING:ping
讀取封包 PING:ping
資訊 (WrapperJarAppMain) 2016-07-30 01:10:05,072 [org.jboss.msc] ServiceLogger_$logger JBoss MSC 版本 1.0.2.GA
資訊 (MSC 服務執行緒 1-4) 2016-07-30 01:10:05,151 [org.jboss.as] ApplicationServerService JBAS015899: JBoss AS 7.1.1.Final "Brontes" 啟動中
WrapperJarApp 偵錯:主方法已完成
傳送封包 PING:ping
WrapperManager 偵錯:已收到封包 PING:ping
WrapperManager 偵錯:傳送封包 PING:ping
讀取封包 PING:ping
資訊 (MSC 服務執行緒 1-3) 2016-07-30 01:10:11,057 [org.xnio] Xnio XNIO 版本 3.0.3.GA
資訊 (控制器開機執行緒) 2016-07-30 01:10:11,057 [org.jboss.as.server] HttpManagementAddHandler JBAS015888: 使用通訊端繫結建立 http 管理服務 (management-http)
資訊 (MSC 服務執行緒 1-3) 2016-07-30 01:10:11,213 [org.xnio.nio] NioXnio XNIO NIO 實作版本 3.0.3.GA
資訊 (ServerService 執行緒集區 -- 25) 2016-07-30 01:10:11,651 [org.jboss.as.configadmin] ConfigAdminAdd JBAS016200: 啟用 ConfigAdmin 子系統
21.020: [GC [PSYoungGen: 262208K->21745K(305856K)] 262263K->21808K(1004928K), 0.0279106 秒] [時間:使用者=0.05 系統=0.03,真實=0.03 秒]
21.051: [GC [PSYoungGen: 82212K->21713K(305856K)] 82275K->21848K(1004928K), 0.0207127 秒] [時間:使用者=0.06 系統=0.00,真實=0.02 秒]
資訊 (ServerService 執行緒集區 -- 30) 2016-07-30 01:10:11,713 [org.jboss.as.clustering.infinispan] InfinispanSubsystemAdd JBAS010280: 正在啟用 Infinispan 子系統。
資訊 (ServerService 執行緒集區 -- 46) 2016-07-30 01:10:
Cause
在對應操作正在進行時,由於記憶體不足問題,導致 AppSync 伺服器服務重新啟動。這導致 AppSync 內部資料庫中的對應項目過時。
Resolution
解決方案:
此修正將防止遇到過時的項目,進而避免當機並允許後續工作執行。
此問題已在 AppSync 2.2.3.1 中解決。