Script für den schnellen Einstieg in die Verwendung von WS-Notification

Verwenden Sie ein Jython-Script, um die erforderlichen Ressourcen für einen schnellen Einstieg in die Verwendung von WS-Notification in WebSphere Application Server zu konfigurieren.

Vorbereitende Schritte

Das in diesem Artikel vorgestellte Beispielscript ist für die Verwendung in einer Entwicklungsumgebung auf einem Server bestimmt und nicht für die Verwendung in Produktions- oder Network Deployment-Umgebungen.

Informationen zu diesem Vorgang

Sie können das Beispielscript verwenden, um eine Standardgruppe von Ressourcen zu konfigurieren, mit denen Sie WS-Notification-Anwendungen in einer Entwicklungsumgebung verbinden können. Das Script führt die folgenden Aktionen aus:

  1. Es sucht in der Konfiguration nach einem vorhandenen Service Integration Bus. Wenn es keinen findet, erstellt es einen.
  2. Es sucht nach einem vorhandenen Busmember. Wenn es keinen findet, fügt es den (eigenständigen) Server zum Bus hinzu und verwendet die Standarddatenquelle.
  3. Es sucht nach einer vorhandenen SIB-Topicbereichsziel. Wenn es keines findet, erstellt es eines.
  4. Es erstellt einen WS-Notification-Services der Version 6.1 oder Version 7.0.
  5. Es erstellt einen WS-Notification-Servicepunkt der Version 6.1 oder Version 7.0 auf dem lokalen Server für eine Bindung des Typs SOAP over HTTP.
  6. Es erstellt einen permanenten WS-Notification-Topic-Namespace, um auf den SIB-Topicbereich zu verweisen, der in Schritt 3 gefunden bzw. erstellt wurde.
  7. Es speichert die Konfiguration und beschreibt, wo die WSDL für den neuen Notification-Broker-Web-Service, der bereitgestellt wurde, zu finden ist.

Führen Sie zur Verwendung des Beispielscript die folgenden Schritte aus:

Vorgehensweise

  1. Speichern Sie die Datei unter einem Namen Ihrer Wahl (z. B. wsnQuickStart.py) im Dateisystem.
  2. Ändern Sie die im Script definierte Variable hostRoot so, dass sie auf den HTTP-Port des lokalen Servers (gewöhnlich 9080) verweist.
  3. (Dieser Schritt ist nur für einen WS-Notification-Service Version 6.1 erforderlich.) Installieren und konfigurieren Sie das SDO-Repository.
  4. Starten Sie den Server, und führen Sie anschließend den folgenden Befehl aus. Wenn Sie das Script unter einem anderen Namen als wsnQuickStart.py gespeichert haben, verwenden Sie den gewählten Namen.
    wsadmin -f wsnQuickStart.py

Beispiel

Im Folgenden sehen Sie das Beispielscript:
#######################################################################################
# QuickStart-Script für WS-Notification #
#                                                                                     #
# This Jython script will quickly create the basic resources required in order to     #
# start using WS-Notification in WebSphere Application Server Version 6.1 or later    #
#                                                                                     #
# Before executing it you must modify the variables defined below to match your       #
# configuration settings. #
#                                                                                     #
# Note:                                                                               #
# - This script is not intended for production use, and is intended for use on        #
# a stand-alone server (not network deployment) only.     #
# - The script will search the configuration for an existing bus, and if one is       #
# not found then a new bus will be created                                            #
# - It will then look for an existing Bus Member on the chosen bus. If one is not     #
# found then one will be created using the default File Store                         #
# - It will then look for an existing service integration bus topic space. If one     #
# is not found then it will create one.      #
#                                                                                     #
# Execute the script by typing;                                                       #
#   wsadmin -f wsnQuickStart.py                                                       #
#                                                                                     #
#######################################################################################

###########################################################
# Configuration variables                                 #
#                                                         #
# Set the following variables to match your configuration #
###########################################################
# The URL root of HTTP port on the local server
hostRoot = "http://xyz.ibm.com:9080"
# The type of WS-Notification service you want to create (Version 6.1 or Version 7.0)
wsnServiceType = "V7.0"

#######################################################################################
# Now create the configuration objects using the variables defined above #
#######################################################################################

# These variables are arbitrary choices and need not be set unless required.
wsnServiceName = "myWSNService"+wsnServiceType
wsnServicePointName = "myWSNServicePoint"+wsnServiceType
eplName = "myNewEPL"
tnsNamespaceURI = "http://example.org/topicNamespace/example1"

# General environment variables
nodeName = AdminTask.listNodes().split("\n")[0].rstrip()
server = AdminTask.listServers().split("\n")[0].rstrip()

print "###########################################################"
print "# Check the pre-requisites before you begin               #"
print "###########################################################"
# Check for the existence of the bus
requiresRestart = "false"
myBuses = AdminTask.listSIBuses().split("\n")
myBus = myBuses[0].rstrip()

if (myBus == ""):
        print "  *** Creating new bus "
        myBus = AdminTask.createSIBus("-bus MySampleBus -busSecurity false 
                                       -scriptCompatibility 6.1")
        requiresRestart = "true"
#endIf 
siBusName = AdminConfig.showAttribute(myBus, "name" )
print "  service integration bus name: "+siBusName+" "

# Check for the existence of the bus member
busMembers = AdminTask.listSIBusMembers(" -bus "+siBusName).split("\n")
myBusMember = busMembers[0].rstrip()

if (myBusMember == ""):
        print ""
        print "  *** Creating new Bus Member "
        busMemberName = AdminConfig.showAttribute(server, "name")
        myBusMember = AdminTask.addSIBusMember(" -bus "+siBusName+" 
                        -node "+nodeName+" -server "+busMemberName)
        print ""
        requiresRestart = "true"
else:
        nodeName = AdminConfig.showAttribute(myBusMember, "node")
        busMemberName = AdminConfig.showAttribute(myBusMember, "server")
#endElse 
print "  service integration bus Member on node: "+nodeName+" "
print "                               on server: "+busMemberName+" "

# Find a topic space to use
topicSpaces = AdminTask.listSIBDestinations(" -bus "+siBusName+" 
                                  -type TopicSpace ").split("\n")
tSpace = topicSpaces[0].rstrip()

if (tSpace == ""):
        print "  *** Creating a Topic Space "
        tSpace = AdminTask.createSIBDestination(" -bus "+siBusName+" 
                        -node "+nodeName+" -server "+myBusMember+" 
                        -name MyTopicSpace -type TopicSpace")
        print ""

#endIf 
siBusTopicSpaceName = AdminConfig.showAttribute(tSpace, "identifier" )
print "     service integration bus topic space: "+siBusTopicSpaceName+" "

print ""
print "###########################################################"
print "# Create the WS-Notification service                      #"
print "###########################################################"
newService = AdminTask.listWSNServices(" -name "+wsnServiceName+" 
                            -bus "+siBusName).split("\n")[0].rstrip()

if (newService == ""):
        newService = AdminTask.createWSNService(" -name "+wsnServiceName+" 
                            -bus "+siBusName+" "+" -type "+wsnServiceType)
        print "WS-Notification service created: "+wsnServiceName+" "
        print "                         on bus: "+siBusName+" "
else:
        print "WS-Notification service '"+wsnServiceName+"' "
        print "  already exists on bus '"+siBusName+"' "
#endElse 

print ""
print "###########################################################"
print "# Create the WS-Notification service point                #"
print "###########################################################"
eplURLRoot = hostRoot+"/wsn"
wsdlURLRoot = hostRoot+"/SIBWS/wsdl"

newServicePoint = AdminTask.listWSNServicePoints(newService, "
                -name "+wsnServicePointName+" " ).split("\n")[0].rstrip()

if (newServicePoint == ""):
        if (wsnServiceType == "V7.0"):
            newServicePoint = AdminTask.createWSNServicePoint(newService, "
            -name "+wsnServicePointName+" -node "+nodeName+" -server "+busMemberName)
        else:
            newServicePoint = AdminTask.createWSNServicePoint(newService, "
            -name "+wsnServicePointName+" 
            -node "+nodeName+" -server "+busMemberName+" -eplName "+eplName+" 
            -eplURLRoot "+eplURLRoot+" -eplWSDLServingURLRoot "+wsdlURLRoot+" " )
        print "WS-Notification service point created: "+wsnServicePointName+" "
        print "                        on bus member: "+busMemberName+" "
        print "                              on node: "+nodeName+" "
else:
        print "WS-Notification service point '"+wsnServicePointName+"' "
        print "already exists on WS-Notification service '"+wsnServiceName+"' "
#endElse 

print ""
print "###########################################################"
print "# Create the WS-Notification permanent topic namespace    #"
print "###########################################################"
newTopicNamespace = AdminTask.listWSNTopicNamespaces(newService, "
                    -namespace "+tnsNamespaceURI+" ").split("\n")[0].rstrip()

if (newTopicNamespace == ""):
    newTopicNamespace = AdminTask.createWSNTopicNamespace(newService, "
      -namespace "+tnsNamespaceURI+" -busTopicSpace "+siBusTopicSpaceName+" 
      -reliability RELIABLE_PERSISTENT")
  print "WS-Notification topic namespace created: "+tnsNamespaceURI+" "
  print "                        bus topic space: "+siBusTopicSpaceName+" "
else:
  print "WS-Notification permanent topic namespace already exists: "
        +tnsNamespaceURI+" "
#endElse 

#######################################################################################
# All the objects have been created - inform the user where to proceed next #
#######################################################################################

print ""
print "###########################################################"
print "# Summary                                                 #"
print "###########################################################"

# Calculate where you would find the WSDL for the new service.
if (wsnServiceType == "V7.0"):
  print "IMPORTANT: Because you've created a Version 7.0 service" 
  print "you need to start the newly installed application;"
  print "           WSN_"+wsnServiceName+"_"+wsnServicePointName 
  print ""

  wsdlLocation = hostRoot+"/"+wsnServiceName+wsnServicePointName
                         +"NB/Service?wsdl"
else:
  print "IMPORTANT: Because you've created a Version 6.1 service" 
  print "you need to start 2 newly installed applications;"
  serverName = AdminConfig.showAttribute(server, "name")
  print "           "+eplName+"."+nodeName+"."+serverName
  print "           sibws."+nodeName+"."+serverName
  print ""
  wsdlLocation = hostRoot+"/wsn/soaphttpengine/"+siBusName+"/"
                 +wsnServiceName+"NotificationBroker/"
                 +wsnServicePointName+"NotificationBrokerPort?wsdl"
print " The WSDL for the new service can be viewed at the following location; "
print "   "+wsdlLocation+" "
print ""
print " Your web service applications can publish and subscribe to any topics in the namespace; "
print "   "+tnsNamespaceURI+" "
print ""
if (requiresRestart == "true"):
  print " You must now restart the server for the changes to take effect. "
  print ""
#endIf 

print ""
print "###########################################################"
print "# Save the configuration and exit                         #"
print "###########################################################"
AdminConfig.save()
sys.exit()

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjwsn_task_sysa0
Dateiname:tjwsn_task_sysa0.html