缺少 Wildfly CLI XA 数据源 属性
Wildfly CLI XA-Datasource missing property
我在官方 Wildfly 10 文档中进行了搜索,并在网上进行了搜索,但奇怪的是,我没有找到解决问题的方法。当我 运行 CLI 并尝试配置 XA 数据源时,我无法配置 属性 xa-datasource-属性.
这些是我试过的命令:
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-properties={"URL"=>{"value"=>"jdbc:oracle:thin"}})
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-properties={"name"=>"URL","value"=>"jdbc:oracle:thin"})
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-property={"name"=>"URL","value"=>"jdbc:oracle:thin"})
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-property={"URL"=>{"value"=>"jdbc:oracle:thin"}})
无论我尝试哪种类型的配置,它都会告诉我 属性 xa-datasource-properties 或 xa-datasource-属性 是 未知。使用 TAB 获取代码完成时,它会提供我的很多属性,但找不到所需的属性。
此外,如果我将其遗漏,它会说:
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0069: At least one xa-datasource-property is required for an xa-datasource",
"rolled-back" => true
}
我错过了什么?
由于某些奇怪的原因,只能使用如下所示的不同语法:
xa-data-source add --name=Test --allow-multiple-users=false --connectable=true --driver-name=XA-Oracle --enabled=true --interleaving=false --jndi-name=java:jboss/datasources/test --max-pool-size=20 --min-pool-size=10 --no-tx-separate-pool=false --pad-xid=false --password=PASSWORD --pool-prefill=true --use-ccm=true --use-java-context=true --user-name=USERNAME --wrap-xa-resource=true --xa-datasource-properties=URL=jdbc:oracle:thin
我不明白为什么 cli 语法的首选方法不起作用,但使用此方法它将是可配置的。
如果有人知道用其他语法使其工作的方法,我将不胜感激。
在 Wildfly 10 上有效:
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-class=oracle.jdbc.xa.client.OracleXADataSource)
注意最后一个 属性,这是必需的,否则测试连接可能会失败。
此外,Wildfly 13 中显然存在一个错误,它无法解释 @
符号并报告一个错误
at least one or more xa-datasource-property is required.
本来应该对 Wildfly 14 进行修复。但是,我发现问题仍然存在。
连WildFly 18都有这个问题。我在下面使用了这样的示例命令..
使用 xa-datasource-properties
创建 xa-datasource
xa-data-source add --jndi-name=java:/jdbc/TesteOracle --name=TesteOracle --driver-name=oracle --password=usuario --user-name=senha
--xa-datasource-properties=URL=jdbc:oracle:thin:@localhost:1521:HE
似乎必须在创建时禁用数据源..
它对我有用
xa-data-source add \
--name=talentia-xxxxx\
--driver-name=sqlserver \
--jndi-name=java:jboss/datasources/xxxxx \
--user-name=xxxxx \
--password=xxxx \
--min-pool-size=10 \
--max-pool-size=20 \
--enabled=false \
--use-java-context=true
/subsystem=datasources/xa-data-source=xxxxxx/xa-datasource-properties=URL:add( \
value=jdbc:sqlserver://xxxxxxxx \
)
/subsystem=datasources/xa-data-source=xxxxxxx:write-attribute( \
name=valid-connection-checker-class-name, \
value=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker \
)
/subsystem=datasources/xa-data-source=xxxxx:write-attribute( \
name=background-validation, \
value=true \
)
/subsystem=datasources/xa-data-source=xxxxx:write-attribute( \
name=same-rm-override, \
value=true \
)
xa-data-source enable --name = xxxxx
可以通过 CLI 以交互方式完成,例如批量声明具有数据源的所有属性:
[standalone@localhost:9990 /] batch
[standalone@localhost:9990 / #] /subsystem=datasources/xa-data-source=MariaDBXADS:add(driver-name=mariadb-xa, jndi-name=java:jboss/datasources/MariaDBXADS, user-name=jdv_user, password=jdv_pass, use-java-context=true)
[standalone@localhost:9990 / #] /subsystem=datasources/xa-data-source=MariaDBXADS/xa-datasource-properties=test:add(value=test-value)
[standalone@localhost:9990 / #] run-batch
The batch executed successfully
我在官方 Wildfly 10 文档中进行了搜索,并在网上进行了搜索,但奇怪的是,我没有找到解决问题的方法。当我 运行 CLI 并尝试配置 XA 数据源时,我无法配置 属性 xa-datasource-属性.
这些是我试过的命令:
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-properties={"URL"=>{"value"=>"jdbc:oracle:thin"}})
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-properties={"name"=>"URL","value"=>"jdbc:oracle:thin"})
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-property={"name"=>"URL","value"=>"jdbc:oracle:thin"})
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-property={"URL"=>{"value"=>"jdbc:oracle:thin"}})
无论我尝试哪种类型的配置,它都会告诉我 属性 xa-datasource-properties 或 xa-datasource-属性 是 未知。使用 TAB 获取代码完成时,它会提供我的很多属性,但找不到所需的属性。
此外,如果我将其遗漏,它会说:
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0069: At least one xa-datasource-property is required for an xa-datasource",
"rolled-back" => true
}
我错过了什么?
由于某些奇怪的原因,只能使用如下所示的不同语法:
xa-data-source add --name=Test --allow-multiple-users=false --connectable=true --driver-name=XA-Oracle --enabled=true --interleaving=false --jndi-name=java:jboss/datasources/test --max-pool-size=20 --min-pool-size=10 --no-tx-separate-pool=false --pad-xid=false --password=PASSWORD --pool-prefill=true --use-ccm=true --use-java-context=true --user-name=USERNAME --wrap-xa-resource=true --xa-datasource-properties=URL=jdbc:oracle:thin
我不明白为什么 cli 语法的首选方法不起作用,但使用此方法它将是可配置的。
如果有人知道用其他语法使其工作的方法,我将不胜感激。
在 Wildfly 10 上有效:
/subsystem=datasources/xa-data-source=TestDataSource/:add(driver-name=XA-Oracle,jndi-name=java:jboss/datasources/testDS,background-validation=false,enlistment-trace=false,flush-strategy=FailingConnectionOnly,max-pool-size=20,min-pool-size=10,no-recovery=false,password=TEST,pool-prefill=true,query-timeout=10,same-rm-override=false,statistics-enabled=true,track-statements=NOWARN,url-property=jdbc:oracle:thin:@TEST:orcl,user-name=USERNAME,validate-on-match=false,enabled=true,allow-multiple-users=false,xa-datasource-class=oracle.jdbc.xa.client.OracleXADataSource)
注意最后一个 属性,这是必需的,否则测试连接可能会失败。
此外,Wildfly 13 中显然存在一个错误,它无法解释 @
符号并报告一个错误
at least one or more xa-datasource-property is required.
本来应该对 Wildfly 14 进行修复。但是,我发现问题仍然存在。
连WildFly 18都有这个问题。我在下面使用了这样的示例命令..
使用 xa-datasource-properties
xa-datasource
xa-data-source add --jndi-name=java:/jdbc/TesteOracle --name=TesteOracle --driver-name=oracle --password=usuario --user-name=senha
--xa-datasource-properties=URL=jdbc:oracle:thin:@localhost:1521:HE
似乎必须在创建时禁用数据源.. 它对我有用
xa-data-source add \
--name=talentia-xxxxx\
--driver-name=sqlserver \
--jndi-name=java:jboss/datasources/xxxxx \
--user-name=xxxxx \
--password=xxxx \
--min-pool-size=10 \
--max-pool-size=20 \
--enabled=false \
--use-java-context=true
/subsystem=datasources/xa-data-source=xxxxxx/xa-datasource-properties=URL:add( \
value=jdbc:sqlserver://xxxxxxxx \
)
/subsystem=datasources/xa-data-source=xxxxxxx:write-attribute( \
name=valid-connection-checker-class-name, \
value=org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker \
)
/subsystem=datasources/xa-data-source=xxxxx:write-attribute( \
name=background-validation, \
value=true \
)
/subsystem=datasources/xa-data-source=xxxxx:write-attribute( \
name=same-rm-override, \
value=true \
)
xa-data-source enable --name = xxxxx
可以通过 CLI 以交互方式完成,例如批量声明具有数据源的所有属性:
[standalone@localhost:9990 /] batch
[standalone@localhost:9990 / #] /subsystem=datasources/xa-data-source=MariaDBXADS:add(driver-name=mariadb-xa, jndi-name=java:jboss/datasources/MariaDBXADS, user-name=jdv_user, password=jdv_pass, use-java-context=true)
[standalone@localhost:9990 / #] /subsystem=datasources/xa-data-source=MariaDBXADS/xa-datasource-properties=test:add(value=test-value)
[standalone@localhost:9990 / #] run-batch
The batch executed successfully