Apr 13, 2019

Προγραμματισμένη (scheduled) κλήση σε JMX bean στο Weblogic

Έστω ότι σε μια legacy εφαρμογή έχει αναπτυχθεί κώδικας σε JMX bean ώστε να διευκολυνθεί η απομακρυσμένη κλήση επιχειρηματικής λογικής. Μέσω του WLST μπορούμε να φτιάξουμε ένα script που θα καλεί το JMX bean, και με τη σειρά του μπορεί να προστεθεί στον χρονοπρογραμματισμό του Linux (πχ cron)

Για το παράδειγμα μας έχουμε ενα JMX bean κάνει bind στο Object Name: "com.example.jmx:type=Integration,name=Export" και έχει γίνει deploy σε έναν managed server (πχ ManagedServer_1) Έχουμε κατασκευάσει μια μέθοδο χωρίς παραμέτρους σε αυτό το bean (πχ startExport), την οποία θέλουμε να καλέσουμε μέσω του δυναμικού προγραμματισμού του cron. Ακολουθεί ένα WLST που υλοποιεί αυτή τη διαδικασία:

# connect to the WebLogic server
#
connect('', '', '')
#
domainCustom();
print ''
print ''
#
# go to custom mbean package/folder
#
cd('com.example.jmx')
#
cd('com.example.jmx:Location=ManagedServer_1,name=Export,type=Integration')
#
# create object name
#
auditJmx=ObjectName('com.example.jmx:Location=ManagedServer_1,name=Export,type=Integration')
print ''
print ''
#
# invoke operation/method form the custom mbean
#
mbs.invoke(auditJmx, 'startExport',None,None)
print ''
print '--------------------------'
disconnect()

Τώρα, αυτό το Jython script μπορούμε να το καλέσουμε μέσω του wlst.sh και έτσι να το χρονοπρογραμματίσουμε κατάλληλα στο crontab.

No comments: