Hi,
I am using wls12c.
I create
jdbc DataSources cgDataSource-nonXA1 to 5
I create Multi DataSource cgDataSource-nonXAMulti ( inherits the single DataSources ).
I create Security Provider in Realm of Type SQLAuthenticator. In providerspecific Section I choose cgDataSource-nonXAMulti as DataSourceName.
When I perform updateDomain() via WLST, I get an Exception ( no effect thow, as the Authentication still works ).
If I choose a SingleDataSource for SQLAuthenticator it works.
If I set read-only-sql-authenticatorType, no error ( I need it to be with writeAccess, to be able to set the Password in offline config via WLST in a Setup Routine ).
I need MultiDataSource because of Failover is needed.
Details:
output of dumpStack() in WLST:
com.oracle.cie.domain.script.jython.WLSTException: com.oracle.cie.domain.script.ScriptException: Domainerweiterung konnte nicht angewendet werden.
Domainspeicherort: /location ( changed for privacy reasons )
Ursache: null
Ausnahme:
java.lang.NullPointerException
at com.oracle.cie.domain.script.jython.CommandExceptionHandler.handleException(CommandExceptionHandler.java:55)
at com.oracle.cie.domain.script.jython.WLScriptContext.handleException(WLScriptContext.java:1967)
at com.oracle.cie.domain.script.jython.WLScriptContext.updateDomain(WLScriptContext.java:604)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.python.core.PyReflectedFunction.__call__(Unknown Source)
at org.python.core.PyMethod.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.PyInstance.invoke(Unknown Source)
at org.python.pycode._pyx5.updateDomain$21(/tmp/WLSTOfflineIni1870421621606658422.py:103)
at org.python.pycode._pyx5.call_function(/tmp/WLSTOfflineIni1870421621606658422.py)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyFunction.__call__(Unknown Source)
at org.python.pycode._pyx23.f$0(<console>:1)
at org.python.pycode._pyx23.call_function(<console>)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyCode.call(Unknown Source)
at org.python.core.Py.runCode(Unknown Source)
at org.python.core.Py.exec(Unknown Source)
at org.python.util.PythonInterpreter.exec(Unknown Source)
at org.python.util.InteractiveInterpreter.runcode(Unknown Source)
at org.python.util.InteractiveInterpreter.runsource(Unknown Source)
at org.python.util.InteractiveInterpreter.runsource(Unknown Source)
at weblogic.management.scripting.WLST.main(WLST.java:219)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at weblogic.WLST.main(WLST.java:29)
Caused by: com.oracle.cie.domain.script.ScriptException: Domainerweiterung konnte nicht angewendet werden.
Domainspeicherort: /location ( change due to privacy reasons )
Ursache: null
Ausnahme:
java.lang.NullPointerException
at com.oracle.cie.domain.script.ScriptExecutor.runGenerator(ScriptExecutor.java:3706)
at com.oracle.cie.domain.script.ScriptExecutor.updateDomain(ScriptExecutor.java:1248)
at com.oracle.cie.domain.script.jython.WLScriptContext.updateDomain(WLScriptContext.java:600)
... 29 more
Caused by: java.lang.NullPointerException
at com.oracle.cie.domain.jdbc.WLSJDBCConnectionInfo.<init>(WLSJDBCConnectionInfo.java:33)
at com.oracle.cie.domain.security.SQLAuthenticatorHandler.getJDBCConnectionInfo(SQLAuthenticatorHandler.java:186)
at com.oracle.cie.domain.security.SQLAuthenticatorHandler.loadSQLAuthenticatorFile(SQLAuthenticatorHandler.java:218)
at com.oracle.cie.domain.TemplateImporter.run(TemplateImporter.java:798)
at java.lang.Thread.run(Thread.java:744)
config:
<sec:authentication-provider xsi:type="wls:sql-authenticatorType">
<sec:name>SQLAuthenticator</sec:name>
<sec:control-flag>OPTIONAL</sec:control-flag>
<wls:data-source-name>cgDataSource-nonXAMulti</wls:data-source-name>
</sec:authentication-provider>
jdbc Files:
Multi:
<?xml version="1.0" encoding="UTF-8"?>
<jdbc-data-source xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source [^]
http://xmlns.oracle.com/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd" [^] xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" [^] xmlns:sec="http://xmlns.oracle.com/weblogic/security" [^] xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" [^] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> [^]
<name>cgDataSource-nonXAMulti</name>
<jdbc-data-source-params>
<jndi-name>cgDataSource-nonXA</jndi-name>
<algorithm-type>Failover</algorithm-type>
<data-source-list>cgDataSource-nonXA1,cgDataSource-nonXA2,cgDataSource-nonXA3,cgDataSource-nonXA4,cgDataSource-nonXA5</data-source-list>
</jdbc-data-source-params>
</jdbc-data-source>
cgDataSource-nonXA1 - 5:
<?xml version="1.0" encoding="UTF-8"?>
<jdbc-data-source xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-source [^]
http://xmlns.oracle.com/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd" [^] xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" [^] xmlns:sec="http://xmlns.oracle.com/weblogic/security" [^] xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" [^] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> [^]
<name>cgDataSource-nonXA1</name>
<jdbc-driver-params>
<url>jdbc:oracle:thin:@machine:1521:instance</url> ( changed due to privacy reasons )
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>user</value> ( changed due to privacy reasons )
</property>
<property>
<name>oracle.jdbc.ReadTimeout</name>
<value>602000</value>
</property>
</properties>
<password-encrypted>password</password-encrypted> ( changed due to privacy reasons )
</jdbc-driver-params>
<jdbc-connection-pool-params>
<initial-capacity>0</initial-capacity>
<max-capacity>50</max-capacity>
<test-connections-on-reserve>true</test-connections-on-reserve>
<test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
<statement-timeout>600</statement-timeout>
</jdbc-connection-pool-params>
<jdbc-data-source-params>
<jndi-name>cgDataSource-nonXA1</jndi-name>
<global-transactions-protocol>None</global-transactions-protocol>
</jdbc-data-source-params>
<jdbc-xa-params/>
</jdbc-data-source>