SFSBFailover mit Scripting auf Modulebene konfigurieren
Mit Scriping und dem Tool wsadmin können Sie Anwendungen für SFSBFailover konfigurieren.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Vorgehensweise
- Verwenden Sie das Objekt AdminConfig, um die SFSBFailover-Konfiguration eines EJB-Moduls in der
Anwendung anzuzeigen.
- Starten Sie den Scripting-Client wsadmin.
- Mit Jacl:
-
wsadmin
- Mit Jython:
-
wsadmin -lang Jython
- Geben Sie das Konfigurationsobjekt für die Implementierung an und ordnen Sie es der Variablen
zu. Beispiel:
- Mit Jacl:
-
set app [$AdminConfig getid /Deployment:EJBinWARTest/] set depObj [$AdminConfig showAttribute $app deployedObject]
- Mit Jython:
-
app = AdminConfig.getid("/Deployment:EJBinWARTest/" ) depObj = AdminConfig.showAttribute(app, "deployedObject" )
- Rufen Sie die Liste der Module für die Anwendung ab.
- Mit Jacl:
-
set modules [lindex [$AdminConfig showAttribute $depObj modules] 0]
- Mit Jython:
-
modules = AdminConfig.showAttribute(depObj, "modules" ) modules = modules.replace('[','').replace(']','') modules = modules.split(' ')
- In diesem Beispiel enthält das EJB-Modul EJBBean.jar eine Enterprise-Bean und das Webmodul
EJB2xInWARBean.war eine andere Enterprise-Bean. Der folgende Code zeigt, wie die SFSB-Konfiguration für jede dieser Enterprise-Beans
modifiziert werden muss.
- Mit Jacl:
-
# Konfigurations-ID des EJB-Moduls und Webmoduls den Variablen "ejbmod" und "webmod" zuordnen foreach module $modules { set moduleName [$AdminConfig show $module uri] if { [string first "EJBBean.jar" $moduleName] >= 0} { set ejbmod $module } if { [string first "EJB2xInWARBean.war" $moduleName] >= 0} { set webmod $module } }
- Mit Jython:
-
# Konfigurations-ID des EJB-Moduls und Webmoduls den Variablen "ejbmod" und "webmod" zuordnen for module in modules: moduleName = AdminConfig.showAttribute(module, 'uri') if moduleName.find('EJBBean.jar') >= 0: ejbmod = module if moduleName.find('EJB2xInWARBean.war') >= 0 : webmod = module
- Rufen Sie das Konfigurationsobjekt für das EJB-Modul ab.
- Mit Jacl:
-
# Einzelnes Konfigurationsobjekt abrufen, das dem reinen EJB-Modul zugeordnet ist set ejbConfig [lindex [$AdminConfig showAttribute $ejbmod configs] 0] if { ($ejbConfig == "") } { puts "\nejbConfig not present - creating one" set ejbConfig [$AdminConfig create EJBModuleConfiguration $ejbmod {{enableSFSBFailover true} {overrideDefaultDRSSettings false}}] set attrs [list config $ejbConfig] set targetMappings [lindex [$AdminConfig showAttribute $ejbmod targetMappings] 0] $AdminConfig modify $targetMappings [list $attrs] } else { puts "\nejbConfig present" }
- Mit Jython:
-
# Liste der Konfigurationsobjekte abrufen, die dem reinen EJB-Modul zugeordnet sind ejbmodConfigs = AdminConfig.showAttribute (ejbmod, 'configs') if (ejbmodConfigs): print "\nejbmodConfigs present" # Einzelnes Konfigurationsobjekt für EJB-Modul extrahieren ejbConfig = ejbmodConfigs.replace('[','').replace(']','') print "\nejbConfig:" print AdminConfig.show(ejbConfig) else: print "\nejbmodConfigs not present - creating one" ecAttrs = [] attr1 = ["enableSFSBFailover", "true"] attr2 = ["overrideDefaultDRSSettings", "false"] ecAttrs.append(attr1) ecAttrs.append(attr2) ejbConfig = AdminConfig.create('EJBModuleConfiguration', ejbmod, ecAttrs) tmAttrs = ['config', ejbConfig] targetMappings = AdminConfig.showAttribute (ejbmod, 'targetMappings') targetMappings = targetMappings[1:len(targetMappings)-1] AdminConfig.modify(targetMappings, [tmAttrs])
- Zeigen Sie die Einstellungen der SFSBFailover-Konfiguration des EJB-Moduls an.
- Mit Jacl:
-
# SFSBFailover-Konfiguration für das EJB-Modul anzeigen puts "\nStateful session bean failover settings of the EJB module" puts [$AdminConfig show $ejbConfig] # drsSettings für das EJB-Modul anzeigen set drsSettings [$AdminConfig showAttribute $ejbConfig drsSettings] if { ($drsSettings == "") } { puts "drsSettings not present on the EJB module." } else { puts "\ndrsSettings of the EJB module:" puts [$AdminConfig show $drsSettings] }
- Mit Jython:
-
# SFSBFailover-Konfiguration für das EJB-Modul anzeigen print AdminConfig.show(ejbConfig) # drsSettings für das EJB-Modul anzeigen drsSettings = AdminConfig.showAttribute (ejbConfig, 'drsSettings') if (drsSettings): print "\ndrsSettings of the EJB module:" print AdminConfig.show(drsSettings) else: print "\ndrsSettings not present on the EJB module." drsSettings = AdminConfig.showAttribute (ejbConfig, 'drsSettings') if (drsSettings): print "\ndrsSettings of the EJB module:" print AdminConfig.show(drsSettings) else: print "\ndrsSettings not present on the EJB module."
- Starten Sie den Scripting-Client wsadmin.
- Verwenden Sie das Objekt AdminConfig, um die SFSBFailover-Konfiguration für eine Enterprise-Bean innerhalb eines Webmoduls derselben
Anwendung zu modifizieren. Für ein in einer WAR-Datei enthaltenes EJB-Modul sind die Schritte ähnlich, nur dass zusätzlich das EJB-Modul aus der Liste der Konfigurationsobjekte
extrahiert werden muss.
- Rufen Sie ausgehend von der Konfigurations-ID für das Webmodul in Schritt 4 das dem Webmodul zugeordnete Konfigurationsobjekt für das EJB-Modul ab.
- Mit Jacl:
-
# Konfigurationsobjekt für das Webmodul abrufen set webmodConfig [lindex [$AdminConfig showAttribute $webmod configs] 0] # Dem Webmodul zugeordnetes Konfigurationsobjekt für das EJB-Modul extrahieren. set ejbInWarConfig [$AdminConfig showAttribute $webmodConfig ejbModuleConfiguration]
- Mit Jython:
-
# Liste der Konfigurationsobjekte abrufen, die dem Webmodul zugeordnet sind webmodConfigs = AdminConfig.showAttribute (webmod, 'configs') # Einzelnes Konfigurationsobjekt für das Webmodul extrahieren webmodConfig = webmodConfigs.replace('[','').replace(']','') # Dem Webmodul zugeordnetes Konfigurationsobjekt für das EJB-Modul extrahieren ejbInWarConfig = AdminConfig.showAttribute (webmodConfig, 'ejbModuleConfiguration')
- Zeigen Sie die SFSB-Konfigurationseinstellungen an.
- Mit Jacl:
-
# Konfiguration des EJB-Moduls innerhalb des Webmoduls anzeigen puts "\nStateful session bean failover settings of the EJB within the web module:" puts [$AdminConfig show $ejbInWarConfig] # SFSBFailover-Einstellungen des EJB-Moduls innerhalb des Webmoduls abrufen set drsSettings [$AdminConfig showAttribute $ejbInWarConfig drsSettings] if { ($drsSettings == "") } { puts "drsSettings not present on the EJB within the Web module." } else { puts "\ndrsSettings of the EJB within the Web module:" puts [$AdminConfig show $drsSettings] }
- Mit Jython:
-
print "\nStateful session bean failover configuration of the EJB module within the web module:" print AdminConfig.show(ejbInWarConfig) drsSettings = AdminConfig.showAttribute(ejbInWarConfig, 'drsSettings') if (drsSettings): print "\ndrsSettings of the EJB module within the web module:" print AdminConfig.show(drsSettings) else: print "\ndrsSettings not present on the EJB module within the web module." print "\ndrsSettings of the EJB module within the Web module:"
- Modifizieren Sie die SFSB-Konfigurationseinstellungen.
- Mit Jacl:
-
# SFSBFailover für die EJB innerhalb des Webmoduls aktivieren: $AdminConfig modify $ejbInWarConfig {{enableSFSBFailover "true"}}
- Mit Jython:
-
# SFSBFailover für die EJB innerhalb des Webmoduls aktivieren: AdminConfig.modify(ejbInWarConfig, [['enableSFSBFailover', 'true']])
- Rufen Sie ausgehend von der Konfigurations-ID für das Webmodul in Schritt 4 das dem Webmodul zugeordnete Konfigurationsobjekt für das EJB-Modul ab.
Zugehörige Konzepte:
Zugehörige Tasks:
Zugehörige Verweise:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_ejbsfsbf
Dateiname:txml_ejbsfsbf.html