В этом руководстве объясняется подход к установке некоторых важных свойств времени ожидания для источников данных XA на сервере WebLogic с помощью сценария WLST.

Установить время ожидания транзакции XA

Позволяет WebLogic Server устанавливать время ожидания ветви транзакции на основе значения XaTransactionTimeout.

Если этот параметр включен, менеджер транзакций WebLogic Server вызывает XAResource.setTransactionTimeout() перед вызовом XAResource.start и передает либо значение времени ожидания транзакции XA, либо глобальное время ожидания транзакции.

Время ожидания транзакции XA

Количество секунд, задаваемое в качестве времени ожидания ветви транзакции.
Если установлено, это значение передается в качестве значения времени ожидания транзакции в вызове XAResource.setTransactionTimeout() диспетчера ресурсов XA, обычно драйвера JDBC.

Если для этого значения установлено значение 0, менеджер транзакций WebLogic Server передает в метод время ожидания глобальной транзакции WebLogic Server в секундах.

Если установлено, это значение должно быть больше или равно глобальному времени ожидания транзакции WebLogic Server.

Продолжительность повтора XA

Определяет продолжительность в секундах, в течение которой диспетчер транзакций будет выполнять операции восстановления ресурса. Нулевое значение указывает на то, что повторные попытки выполняться не будут.

XA Интервал между попытками

Количество секунд между повторными операциями XA, если XARetryDurationSeconds имеет положительное значение.

Обратите внимание, что приведенные выше конфигурации доступны только для источников данных, созданных с помощью драйвера с поддержкой XA.

WLST-скрипт

Приведенный ниже скрипт wlst устанавливает необходимые свойства тайм-аута XA.

SetXATimeoutProperties.py

def setXATimeoutProperties():
   dsName='JDBC Data Source-0'
   edit()
   startEdit()
       
   server='AdminServer'
   cd("Servers/"+server)
   target=cmo
 
   print '========================================='
   print 'Setting the timeout properties for DataSource....'
   print '========================================='  
           
   cd('/JDBCSystemResources/'+dsName+'/JDBCResource/'+dsName+'/JDBCXAParams/'+dsName)
   cmo.setXaSetTransactionTimeout(true)
cd('/JDBCSystemResources/'+dsName+'/JDBCResource/'+dsName+'/JDBCXAParams/'+dsName)
   cmo.setXaTransactionTimeout(3000)
cd('/JDBCSystemResources/'+dsName+'/JDBCResource/'+dsName+'/JDBCXAParams/'+dsName)
   cmo.setXaRetryDurationSeconds(300)
cd('/JDBCSystemResources/'+dsName+'/JDBCResource/'+dsName+'/JDBCXAParams/'+dsName)
   cmo.setXaRetryIntervalSeconds(60)
save()
   activate()
print 'Timeout settings for the datasource '+dsName+' has been completed'
 
 
def main():
     
    adminURL='t3://localhost:7001'
    adminUserName='weblogic'
    adminPassword='weblogic1'
    connect(adminUserName, adminPassword, adminURL)
    setXATimeoutProperties()
    disconnect()
main()

Скрипт



techforum-repo/youttubedata
Внесите свой вклад в развитие techforum-repo/youttubedata, создав учетную запись на GitHub.github.com



Перед выполнением скрипта измените значения конфигурации по мере необходимости.

Выполните скрипт — ‹‹Oracle_Home››\oracle_common\common\bin\wlst.cmd SetXATimeoutProperties.py

Перезапустите сервер после успешного выполнения. Теперь конфигурации XA включены по мере необходимости.