|
# OCTAVIO SANCHEZ, http://codefixes.blogspot.mx/ |
|
# SOFTWARE ENGINEER |
|
|
|
from java.io import FileInputStream |
|
from java.util import Properties |
|
|
|
|
|
def loadProperties(fileName): |
|
properties = Properties() |
|
input = FileInputStream(fileName) |
|
properties.load(input) |
|
input.close() |
|
|
|
result= {} |
|
for entry in properties.entrySet(): result[entry.key] = entry.value |
|
|
|
return result |
|
|
|
|
|
properties = loadProperties("local.properties") |
|
|
|
username = properties['username'] |
|
password = properties['password'] |
|
url = properties['providerURL'] |
|
|
|
|
|
connect(username, password, url) |
|
adminServerName = cmo.adminServerName |
|
|
|
try: |
|
print "Inicializando ..." |
|
domainName = cmo.name |
|
cd("Servers/%s" % adminServerName) |
|
adminServer = cmo |
|
|
|
|
|
def deleteIgnoringExceptions(mbean): |
|
try: delete(mbean) |
|
except: |
|
print "delete mbean" |
|
pass |
|
|
|
def startTransaction(): |
|
edit() |
|
startEdit() |
|
|
|
def endTransaction(): |
|
save() |
|
activate(block="true") |
|
|
|
|
|
def createDLQ(qname, qjndiname,dkName): |
|
print "createDLQ() START" |
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName) |
|
errorQueue = create(qname, "Queue") |
|
errorQueue.JNDIName = qjndiname |
|
|
|
errorQueue.subDeploymentName = subDeploymentName |
|
print dkName |
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName) |
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname) |
|
set('DestinationKeys',jarray.array([String(dkName)],String)) |
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryFailureParams/'+qname) |
|
cmo.setRedeliveryLimit(1) |
|
cmo.setExpirationPolicy('Log') |
|
|
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryParamsOverrides/'+qname) |
|
cmo.setRedeliveryDelay(5000) |
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryFailureParams/'+qname) |
|
cmo.unSet('ErrorDestination') |
|
|
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryParamsOverrides/'+qname) |
|
cmo.setPriority(-1) |
|
cmo.setDeliveryMode('Persistent') |
|
cmo.setTimeToDeliver('-1') |
|
cmo.setTimeToLive(-1) |
|
print "createDLQ() END" |
|
|
|
def createDestinationKey(dkname): |
|
print "createDestinationKey() START" |
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName) |
|
dk1 = create(dkname, "DestinationKey") |
|
|
|
dk1.setProperty("JMSPriority") |
|
dk1.setKeyType("String") |
|
dk1.setSortOrder("Descending") |
|
print "createDestinationKey() END" |
|
|
|
def createQueue(qname, qjndiname, dlqName,dkName): |
|
print "createQueue() START" |
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName) |
|
q1 = create(qname, "Queue") |
|
q1.JNDIName = qjndiname |
|
|
|
|
|
q1.subDeploymentName = subDeploymentName |
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName) |
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname) |
|
set('DestinationKeys',jarray.array([String(dkName)],String)) |
|
|
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryParamsOverrides/'+qname) |
|
cmo.setRedeliveryDelay(2000) |
|
|
|
print "Assign failed destination to queue" |
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryFailureParams/'+qname) |
|
cmo.setRedeliveryLimit(3) |
|
|
|
cmo.setExpirationPolicy('Redirect') |
|
erQueue = getMBean('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+dlqName) |
|
cmo.setErrorDestination(erQueue) |
|
|
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/MessageLoggingParams/'+qname) |
|
cmo.setMessageLoggingEnabled(true) |
|
cmo.setMessageLoggingFormat('JMSDestination,JMSMessageID') |
|
|
|
|
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName+'/Queues/'+qname+'/DeliveryParamsOverrides/'+qname) |
|
cmo.setPriority(-1) |
|
cmo.setDeliveryMode('Persistent') |
|
cmo.setTimeToDeliver('-1') |
|
cmo.setTimeToLive(-1) |
|
print "createQueue() END" |
|
|
|
|
|
def createCF(cfname, cfjndiname, xaEnabled): |
|
print "createCF() START" |
|
cd('/JMSSystemResources/'+moduleName+'/JMSResource/'+moduleName) |
|
cf = create(cfname, "ConnectionFactory") |
|
cf.JNDIName = cfjndiname |
|
cf.subDeploymentName = subDeploymentName |
|
|
|
if (xaEnabled == "true"): |
|
cf.transactionParams.setXAConnectionFactoryEnabled(1) |
|
print "createCF() END" |
|
|
|
|
|
def createJMSModule(): |
|
print "createJMSModule() START" |
|
cd('/JMSSystemResources') |
|
jmsModule = create(moduleName, "JMSSystemResource") |
|
jmsModule.targets = (adminServer,) |
|
|
|
cd(jmsModule.name) |
|
|
|
sd = create(subDeploymentName, "SubDeployment") |
|
myJMSServer = getMBean('/JMSServers/' + jmsServerName) |
|
sd.targets = (myJMSServer,) |
|
print "createJMSModule() END" |
|
|
|
|
|
def createJMSServer(): |
|
print "createJMSServer() START" |
|
startTransaction() |
|
|
|
cd("/JMSServers") |
|
deleteIgnoringExceptions(jmsServerName) |
|
cd("/FileStores") |
|
deleteIgnoringExceptions(fileStoreName) |
|
|
|
|
|
cd('/') |
|
filestore = cmo.createFileStore(fileStoreName) |
|
filestore.setDirectory(properties['fileStoreDirecory']) |
|
filestore.targets = (adminServer,) |
|
endTransaction() |
|
|
|
startTransaction() |
|
cd("/JMSServers") |
|
|
|
jmsServer = create(jmsServerName, "JMSServer") |
|
jmsServer.setPersistentStore(filestore) |
|
jmsServer.targets = (adminServer,) |
|
endTransaction() |
|
print "createJMSServer() END" |
|
|
|
|
|
|
|
moduleName = 'TestJMSSModule' |
|
subDeploymentName = 'TestJMSSubDeployment' |
|
fileStoreName = 'TestFileStore' |
|
jmsServerName = 'TestJMSServer' |
|
|
|
|
|
startTransaction() |
|
|
|
cd("/JMSSystemResources") |
|
deleteIgnoringExceptions(moduleName) |
|
endTransaction() |
|
|
|
print "Create JMS Server" |
|
createJMSServer() |
|
|
|
startTransaction() |
|
print "Create JMS Module" |
|
createJMSModule() |
|
|
|
dkName1='DefaultDestinationKey' |
|
print "Create Destinantion Key DefaultDestinationKey" |
|
createDestinationKey(dkName1) |
|
|
|
|
|
queueEDQName1 = 'ApplicationBatchErrorQueue' |
|
queueEDQJNDIName1 = 'jms/ApplicationBatchErrorQueue' |
|
print "Create Error Destinantion ApplicationBatchErrorQueue" |
|
createDLQ(queueEDQName1, queueEDQJNDIName1,dkName1) |
|
|
|
queueName1 = 'ApplicationBatchReplyQueue' |
|
queueJNDIName1 = 'jms/ApplicationBatchReplyQueue' |
|
print "Create Queue ApplicationBatchReplyQueue" |
|
createQueue(queueName1, queueJNDIName1, queueEDQName1,dkName1) |
|
|
|
queueName2 = 'ApplicationBatchRequestQueue' |
|
queueJNDIName2 = 'jms/ApplicationBatchRequestQueue' |
|
print "Create Queue ApplicationBatchRequestQueue" |
|
createQueue(queueName2, queueJNDIName2, queueEDQName1,dkName1) |
|
|
|
|
|
queueEDQName3 = 'XMLMarshallerErrorQueue' |
|
queueEDQJNDIName3 = 'jms/XMLMarshallerErrorQueue' |
|
print "Create Error Destinantion XMLMarshallerErrorQueue" |
|
createDLQ(queueEDQName3, queueEDQJNDIName3,dkName1) |
|
|
|
queueName5 = 'XMLMarshallerReplyQueue' |
|
queueJNDIName5 = 'jms/XMLMarshallerReplyQueue' |
|
print "Create Queue XMLMarshallerReplyQueue" |
|
createQueue(queueName5, queueJNDIName5, queueEDQName3,dkName1) |
|
|
|
queueName6 = 'XMLMarshallerRequestQueue' |
|
queueJNDIName6 = 'jms/XMLMarshallerRequestQueue' |
|
print "Create Queue XMLMarshallerRequestQueue" |
|
createQueue(queueName6, queueJNDIName6, queueEDQName3,dkName1) |
|
|
|
myCFName = 'TestConnectionFactory' |
|
myCFJNDIName = 'jms/TestConnectionFactory' |
|
print "Create JMS XA Connection Factory TestConnectionFactory" |
|
createCF(myCFName, myCFJNDIName, "true") |
|
|
|
|
|
endTransaction() |
|
except: |
|
print "ocurrio un error" |
|
dumpStack() |
|
cancelEdit("y") |
|
|
|
|
|
print "disconnect" |
|
disconnect() |
|
|
|
print "exit" |
|
exit() |