두 개의 독립된 WebLogic 9.2.1 서버 (자체 관리 서버가있는 관리 서버)가 있습니다. 따라서 클러스터링이 설정되지 않았습니다. JDBC 세션 지속성으로 구성됩니다. 또한 각 WebLogic 서버에는 자체 WebLogic 서버로만 트래픽을 전달하는 WebLogic 플러그인이있는 자체 Apache 2 프론트 엔드가 있습니다. Apache 2 서버 앞에 하드웨어 Load Balancer가 있습니다. 현재 세션 지속성에 사용되는 테이블을 호스팅하는 Oracle 데이터베이스에서 제약 조건 위반이 발생하고 있습니다.WebLogic 9.2로드 균형 문제
하드웨어 부하 분산 장치가 고정 IP를 사용하고 있다는 것을 알았습니다. 따라서 세션도 결과적으로 고정적이어야합니다. 하지만 설치 과정에서 잘못된 점이 무엇일까?
웹 로직 로그 :
####<Apr 26, 2011 13:00:08.0428 CEST> <Error> <HTTP Session> <sktpens01por02> <SktEnsPorServer1> <[ACTIVE] ExecuteThread: '230' for queue: 'weblogic.kernel.Default (self-tuning)'> <skatGuid=6fa90948-b285-45a5-954b-45e22bfc26c2,ou=company,ou=external,ou=entities,dc=skat,dc=dk> <> <> <1303815608428> <BEA-100087> <The jdbc session data for session id: lZbJN2jTbPZjTf81vSrKytxDdYCpwTgblJhnck3RhTcPf3FQr1Pw ctx:front dblat:1303815595796 triggerLAT:0 has been modified by another server in the cluster. java.sql.SQLException: ORA-00001: unique constraint (FRONTSESSIONS.SYS_C0056504) violated at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3454) at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:128) at weblogic.servlet.internal.session.JDBCSessionData.dbCreate(JDBCSessionData.java:181) at weblogic.servlet.internal.session.JDBCSessionData.dbUpdate(JDBCSessionData.java:242) at weblogic.servlet.internal.session.JDBCSessionData.syncSession(JDBCSessionData.java:583) at weblogic.servlet.internal.session.JDBCSessionContext.sync(JDBCSessionContext.java:232) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2507) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2482) at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1308) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1302) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1368) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) > ####<Apr 26, 2011 13:00:08.0436 CEST> <Error> <HTTP Session> <sktpens01por02> <SktEnsPorServer1> <[ACTIVE] ExecuteThread: '230' for queue: 'weblogic.kernel.Default (self-tuning)'> <skatGuid=6fa90948-b285-45a5-954b-45e22bfc26c2,ou=company,ou=external,ou=entities,dc=skat,dc=dk> <> <> <1303815608436> <BEA-100060> <An unexpected error occurred while retrieving the session for Web application: [email protected] - appName: 'Portal-Front', name: 'front', context-path: '/front'. java.sql.SQLException: ORA-00001: unique constraint (FRONTSESSIONS.SYS_C0056504) violated at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3454) at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:128) at weblogic.servlet.internal.session.JDBCSessionData.dbCreate(JDBCSessionData.java:181) at weblogic.servlet.internal.session.JDBCSessionData.dbUpdate(JDBCSessionData.java:242) at weblogic.servlet.internal.session.JDBCSessionData.syncSession(JDBCSessionData.java:583) at weblogic.servlet.internal.session.JDBCSessionContext.sync(JDBCSessionContext.java:232) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2507) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2482) at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1308) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1302) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1368) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) >
오라클 테이블 정의 :
CREATE TABLE "FRONTSESSIONS"."WL_SERVLET_SESSIONS"
(
"WL_ID" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"WL_CONTEXT_PATH" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"WL_IS_NEW" CHAR(1 BYTE),
"WL_CREATE_TIME" NUMBER(20,0),
"WL_IS_VALID" CHAR(1 BYTE),
"WL_SESSION_VALUES" LONG RAW,
"WL_ACCESS_TIME" NUMBER(20,0),
"WL_MAX_INACTIVE_INTERVAL" NUMBER(*,0),
PRIMARY KEY ("WL_ID", "WL_CONTEXT_PATH") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "FRONTSESSIONS" ENABLE
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
)
TABLESPACE "FRONTSESSIONS" ;
감사합니다!
실제 Oracle 오류 메시지와 테이블 정의를 게시 할 수 있습니까? – JoseK
붙여 넣은 WebLogic 로그 및 테이블 정의. – neko
정확히 같은 예외가 발생했습니다. 누군가 도와 드릴 수 있습니까? – ipolevoy