WebLogic Server 10.3.4에서 Spring 3.0.5 웹 응용 프로그램을 실행 중입니다. EhCache 2.4.2를 캐싱으로 사용하는 Sun JVM 1.6.0_x 64 비트가있는 Solaris 라이브러리. WLS는 표준 노드 startManagedWebLogic.sh
(노드 관리자/관리 콘솔을 사용하지 않음)을 통해 시작된 동일한 실제 시스템에서 실행되는 두 노드의 클러스터로 설정됩니다. 에서EhCache "ehcache.disk.store.dir"설정이 적용되지 않습니다.
우리 ehcache.xml
우리는이 같은 디스크 저장 경로를 설정 한 : the 2.4 series documentation of EhCache 이 설정에 따라
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<!-- Location of persistent caches on disk -->
<diskStore path="ehcache.disk.store.dir" />
..
는 JVM 시스템 속성은 디스크 저장 경로를 지정 하기 위해 설정할 수 있습니다.
는 시스템 속성은 표준 JAVA_OPTIONS
요소를 사용하여 startManagedWebLogic.sh
에 설정됩니다 SERVER_NAME
와
JAVA_OPTIONS="-Dehcache.disk.store.dir=/var/tmp/EhCache-${SERVER_NAME} <other stuff>"
export JAVA_OPTIONS
이 옵션 전에 같은 스크립트에 정의된다. 내가 속성을 볼 수있는 클러스터 노드의 시작시
이 (더 읽기 쉽도록 두 줄로 표시)가 제대로 를 설정되는 :
/usr/jdk/jdk1.6.0_21/bin/java -d64 -server -Xms4096m -Xmx4096m
-XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParallelOldGC
-verbose:gc -XX:+PrintGCTimeStamps -Dweblogic.Name=Node2 [..]
-Dehcache.disk.store.dir=/var/tmp/EhCache-Node2 [..]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
weblogic.Server
을하지만, 다음 응용 프로그램을 사용하여, 나는 자리가 가 교체되지 않는 것을 알 수 있습니다 제대로, 따라서 실제 경로 설정 대신 자리 표시 자 이름을 사용 :
2012-08-22 11:52:59,426 DEBUG [net.sf.ehcache.CacheManager] - [Creating new CacheManager with default config]
2012-08-22 11:52:59,429 DEBUG [net.sf.ehcache.CacheManager] - [Configuring ehcache from classpath.]
..
2012-08-22 11:52:59,458 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] - [Disk Store Path: ehcache.disk.store.dir]
..
2012-08-22 11:52:59,586 DEBUG [net.sf.ehcache.store.DiskStore] - [IOException reading index. Creating new index. ]
2012-08-22 11:52:59,587 DEBUG [net.sf.ehcache.store.DiskStore] - [Index file ehcache.disk.store.dir/bookmarksCountForUserCache.index deleted.]
2012-08-22 11:52:59,588 DEBUG [net.sf.ehcache.store.DiskStore] - [Index file ehcache.disk.store.dir/bookmarksCountForUserCache.index created successfully]
2012-08-22 11:52:59,588 DEBUG [net.sf.ehcache.store.DiskStore] - [Index file dirty or empty. Deleting data file bookmarksCountForUserCache.data]
2012-08-22 11:52:59,597 DEBUG [net.sf.ehcache.store.MemoryStore] - [Initialized net.sf.ehcache.store.LruMemoryStore for bookmarksCountForUserCache]
2012-08-22 11:52:59,600 DEBUG [net.sf.ehcache.store.LruMemoryStore] - [bookmarksCountForUserCache Cache: Using SpoolingLinkedHashMap implementation]
2012-08-22 11:52:59,601 DEBUG [net.sf.ehcache.Cache] - [Initialised cache: bookmarksCountForUserCache]
내 WLS 도메인 내부의 파일 시스템에서, 내가 볼 수있는 새 폴더 ehcache.disk.store.dir
이 생성되므로 경로는 상대 경로로 해석됩니다. 대신에 일반 문자열 ehcache.disk.store.dir
를 사용
는 또한 표준 패턴 ${ehcache.disk.store.dir}
를 사용하여 을 시도하지만,이 단지 은 ${..}
으로 생성되는 폴더 이름을 변경했습니다.
노드속성과 모든 노드에 대해 동일한 EhCache 구성을 사용하여 노드 당 디스크 저장소 경로를 지정하는 방법이 있습니까?
우리의 ehcache.xml
은 배포 된 .war 파일 안에 있으므로 모든 클러스터 노드에 대해 동일하게 이됩니다. 이 릴리스에서는 코드가 끝났기 때문에 응용 프로그램 코드를 변경할 수 없습니다. 그러나 위에서 설명한대로 시스템 속성을 설정하기 위해 서버의 시작 설정을 조정할 수 있습니다.
도움 주셔서 감사합니다.
내 게시물에 설명되어 있듯이, 나는 이것을 이미 시도해 왔으며 나의 시나리오에서는 작동하지 않았다. 설정은 효과없이'-D' 구문을 사용하여 환경 변수 및/또는 시스템 속성으로 제공됩니다. –