문제

두 개의 다른 DBMS (MS-SQLServer 및 Informix)에 대한 데이터 소스가 Login-Config.xml 파일에서 보안 도메인 구성을 선택하지 않는 문제에 실행됩니다.

우리의 데이터 소스는 다음과 같습니다.

    <datasources>
      <local-tx-datasource>
        <jndi-name>ourTX</jndi-name>
        <connection-url>jdbc:informix-sqli://our.server.com:1526/wlms:informixserver=ol_db</connection-url>
        <driver-class>com.informix.jdbc.IfxDriver</driver-class>
        <security-domain>ourDS</security-domain>
        <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
        <metadata>
           <type-mapping>InformixDB</type-mapping>
        </metadata>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>50</max-pool-size>
        <prefill>yes</prefill>
        <prepared-statement-cache-size>10</prepared-statement-cache-size>
        <idle-timeout-minutes>5</idle-timeout-minutes>
        <new-connection-sql>set lock mode to wait 4;set isolation to cursor stability;</new-connection-sql>
        <check-valid-connection-sql>SELECT count(*) FROM dummy;</check-valid-connection-sql>
      </local-tx-datasource>
    </datasources>

그리고 로그인 -config.xml에는 다음과 같은 항목이 있습니다.

  <application-policy name="ourDS">
    <authentication>
      <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
         <module-option name="userName">user</module-option>
         <module-option name="password">-4e5f8b6c4217c342c03b57ed16d31678</module-option>
         <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=ourTX</module-option>
      </login-module>
    </authentication>
  </application-policy>

그러나 Jboss 서버가 배포되면 Informix에 대한 오류가 발생합니다.

13:23:13,521 WARN  [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Incorrect password or user com.informix.asf.IfxASFRemoteException: user@my.computer.com is not known on the database server.)

그리고 MS-SQLServer의 경우 다음과 같은 Informix와 유사한 오류가 발생합니다.

13:25:23,053 WARN  [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.)

이제 *-ds.xml 파일의 보안 도메인 요소를 주석하고 간단한 사용자 이름과 명확한 텍스트 비밀번호로 교체하면 두 데이터베이스 엔진에서 모두 데이터 소스가 작동합니다. 우리는 JBoss에서 'All'서버 구성을 사용하고 있습니다. 시작시 Login-Config.xml이로드되고 있는지 확인했습니다. 보안 도메인 요소가 사용하는 HQSQLDB-DS.XML. 그러나 Login-Config.xml에 추가 된 응용 프로그램 policy를 사용하면 DataSource가 새 연결을 설정할 때 값을 얻지 못하는 것 같습니다.

우리가 잘못하고있는 아이디어가 있습니까? 우리가 뭔가를 놓쳤습니까?

도움이 되었습니까?

해결책

우리는 관리자 콘솔을 통해 데이터 소스의 유효성을 테스트하고있었습니다. 데이터베이스를 테스트하는 위치로 인해 JBoss EAP 5.0.0.GA 버전의 버그입니다. 확인되지는 않았지만 5.0.1.ga 및 5.0.2.ga에 대한 관리자 콘솔의 버그 일 수도 있습니다.

위의 모든 것이 실제로 작동했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top