Frage

Beim Laufen in ein Problem, bei dem unsere Datenquellen für zwei verschiedene DBMS (MS-SQLServer und Informix) nicht die Sicherheitsdomänen-Konfiguration in der Datei login-config.xml Aufnehmen.

Unsere Datenquellen wie folgt aussehen:

    <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>

Und unsere login-config.xml hat den folgenden Eintrag:

  <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>

Sobald jedoch der JBoss-Server bereitgestellt wird, wir einen Fehler, wie dies für Informix erhalten:

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.)

Und für MS-SQLServer erhalten wir einen ähnlichen Fehler zu Informix die aussieht wie:

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.)

Nun, wenn wir die Sicherheitsdomänen-Element in der * -ds.xml Datei kommentieren und ersetzen es mit einem einfachen Benutzernamen und ein Klartext-Passwort, sowohl Datenquelle arbeiten mit beiden Datenbank-Engines. Wir verwenden die ‚alle‘ Server-Konfiguration in JBoss. Wir haben dafür gesorgt, dass Login-config.xml auf Start geladen zu werden. Und die hqsqldb-ds.xml unter Verwendung der Sicherheitsdomänen-Element funktioniert. Aber mit unserer hinzugefügt anwendungsPolitik auf die Login-config.xml, so scheint es, dass die Datenquelle nicht die Werte nicht erhalten, wenn eine neue Verbindung hergestellt wird.

Alle Ideen, was wir falsch machen? Haben wir etwas verpasst?

War es hilfreich?

Lösung

Wir testen die Gültigkeit der Datenquelle über die Admin-Konsole. Da, wo wir die Datenbank testen, ist dieser Fehler in der JBoss EAP 5.0.0.GA Version. Obwohl nicht bestätigt, kann auch ein Fehler, aber in der Admin-Konsole für 5.0.1.GA und vielleicht 5.0.2.GA sein.

Alles über tatsächlich arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top