Я пытаюсь настроить очередь JMS в Weblogic как транзакционную. Для этого требуется включить XA на фабрике соединений, которую я использую.
Я знаю, что могу сделать это из консоли администратора, как только weblogic заработает. Однако мне действительно нужно сделать это в автономном режиме, пока создается домен. Прямо сейчас у меня есть это:
#*Setting up resources and JDBC*
cd('/')
create('JMSServer-0', 'JMSServer')
cd('/')
create('JMSQueues', 'JMSSystemResource')
cd('JMSSystemResource/JMSQueues/JmsResource/NO_NAME_0')
queue=create('AQueue', 'Queue')
queue.setJNDIName('jms/AQueue')
queue.setSubDeploymentName('subdeploymentA')
queue=create('BQueue', 'Queue')
queue.setJNDIName('jms/BQueue')
queue.setSubDeploymentName('subdeploymentB')
connFact=create('AConnFact', 'ConnectionFactory')
connFact.setJNDIName('jms/AConnFact')
connFact.setSubDeploymentName('subdeployment_fact_A')
connFact=create('BConnFact', 'ConnectionFactory')
connFact.setJNDIName('jms/BConnFact')
connFact.setSubDeploymentName('subdeployment_fact_B')
cd('/JMSSystemResource/JMSQueues/JmsResource/NO_NAME_0/ConnectionFactory/BConnFact')
tp=create('BConnFactTp', 'TransactionParam')
tp.setXAConnectionFactoryEnabled(true)
#TransactionParam does not show up here
print "\n" + pwd() + "\n"
ls()
#TransactionParam DOES show up here
cd('/JMSSystemResource/JMSQueues/JmsResource/NO_NAME_0/ConnectionFactory/AConnFact')
print "\n" + pwd() + "\n"
ls()
#Finalization follows here
Теперь это существующий сценарий, а AConnFact и AQueue уже некоторое время существуют с отключенным XA, поэтому я бы предпочел оставить их в покое. Итак, как мне сделать так, чтобы BConnFact действительно получал новые настройки TransactionParam?
Я должен отметить, что у меня есть "мех" исправить это. Create поместит TransactionParams в том порядке, в котором создаются ConnectionFactories. Я могу просто разместить их в том порядке, в котором хочу. Однако я бы предпочел этого не делать.