Version 6 (modified by bartek, 14 years ago) (diff) |
---|
QCG-Notification Installation in QosCosGrid
Within QosCosGrid the QCG-Notification service is used for brokering notification messages about the job state changes. All instances of the QCG-Computing services acts as the information Producers while the QCG-Broker as the Consumer. In most cases it is enough that only one instance of the QCG-Notification is deployed per Administrative Domain (i.e.: not necessary one per Cluster).
Installation
Similarly to the QCG-Computing service QCG-Notification requires the QCG-Core library to be installed. If this prerequisite is fulfilled the QCG-Notification installation can be done in a few simple steps:
tar xf qcg-ntf-latest.tar cd qcg-ntf-2.0.0 ./configure --prefix=/opt/qcg --with-qcg-core=/opt/qcg make sudo make install
In order to verify later the installation, it is recommended to provide an additional option to ./configure: --with-consumer
Configuration
Before you start you need to create a new system user (e.g. qcg_ntf) that will be used to start the service:
useradd -d /opt/qcg/var/log/qcg-ntf/ -M qcg_ntf
Give the qcg_ntf user ownership of the log directory:
chown qcg_ntf /opt/qcg/var/log/qcg-ntf/
Service configuration
Minimal configuration requires only the host and port to be changed in the main service configuration file: PREFIX/etc/qcg-ntfd.xml. The complete configuration guide can be found in the PREFIX/share/qcg-ntf/doc/ directory.
Starting the service
As the qcg_ntf user type:
/opt/qcg/sbin/qcg-ntfd
or if you want the service not to daemonize and print all logs to console type:
/opt/qcg/sbin/qcg-ntfd -d
otherwise the logs can be found in /opt/qcg/var/log/qcg-ntf/qcg-ntfd.log.
Stopping the service
The service is stopped by sending SIGTERM signal, e.g.:
pkill qcg-ntfd
Verifying the installation
If the service was configured with the option --with-consumer attached to ./configure, the basic verification scenario may be proceeded in a following way:
- Set the Host and Port parameters in the configuration files of the QCG-Notification service and sample consumer, respectivetly in /opt/qcg/etc/qcg-ntfd.xml and /opt/qcg/etc/qcg-ntf-consumer.xml. For example, the key part of the qcg-ntfd.xml file may looks as foolows:
Similarly, the part of qcg-ntf-consumer.xml may have a following form:
<sm:Module xsi:type="sm:ecm_gsoap.service"> <sm:Host>127.0.0.1</sm:Host> <sm:Port>2211</sm:Port> ... </sm:Module>
<sm:Module xsi:type="sm:ecm_gsoap.service"> <sm:Host>127.0.0.1</sm:Host> <sm:Port>2212</sm:Port> ... </sm:Module>
- Start the qcg-ntfd in a debug mode:
/opt/qcg/sbin/qcg-ntfd -d
- Start the qcg-ntf-consumer in a debug mode:
/opt/qcg/sbin/qcg-ntf-consumer -d
- Using the sample client program create a subscription in the QCG-Notification service:
Note: The created subscription assigns a service running on http://127.0.0.1:2212 to be a consumer of notifications sent on topics from a namespace http://schemas.qoscosgrid.org/comp/2011/04/notification/topic. The subscription id is 810917963
./qcg-ntf-client -d -u http://127.0.0.1:2211 -S "cons=http://127.0.0.1:2212 top=http://schemas.qoscosgrid.org/comp/2011/04/notification/topic;//*;Full ... INF May 17 14:15:51 1128 0xa0262720 [qcg-client-gsoa] Subscribed, subRef: '810917963' ...
- Send a sample notification on a some topic from the namespace http://schemas.qoscosgrid.org/comp/2011/04/notification/topic to the QCG-Notification service:
./qcg-ntf-client -d -u http://127.0.0.1:2211 -N "http://schemas.qoscosgrid.org/comp/2011/04/notification/topic;ActivityState/Queued;Full msg=<SampleNotification/>" ... INF May 17 14:19:32 1134 0xa0262720 [qcg-client-gsoa] Notification sent successfully ...
- Check the output of qcg-ntfd and output of qcg-ntf-consumer. The outputs' scripts, in order, should be simillar to the following ones:
... INF May 17 14:19:32 1113 0xb0185000 [......ecm_gsoap] Serving Notify routine INF May 17 14:19:32 1113 0xb0185000 [...............] Sending message to: 'http://localhost:2212' INF May 17 14:19:32 1113 0xb0185000 [...............] Notification forwarded to '1' consumers INF May 17 14:19:32 1113 0xb0185000 [...............] Forwarded Notification on topic: 'http://schemas.qoscosgrid.org/comp/2011/04/notification/topic/ActivityState/Queued' ...
... INF May 17 14:19:32 1120 0xb0491000 [qcg-consumer-gs] Receive notify message: INF May 17 14:19:32 1120 0xb0491000 [qcg-consumer-gs] From: 127.0.0.1 INF May 17 14:19:32 1120 0xb0491000 [qcg-consumer-gs] Topic: <wsnt:Topic xmlns:tns="http://schemas.qoscosgrid.org/comp/2011/04/notification/topic" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Full">tns:ActivityState/Queued</wsnt:Topic> ...
- Finally remove the created subscription:
./qcg-ntf-client -d -u http://localhost:2211 -U "id=810917963" ... INF May 17 14:41:48 3318 0xa0262720 [qcg-client-gsoa] Unsubscribed: '810917963' ...
QCG-Computing (QCG BES/AR) integration
After finishing the QCG-Notification configuration you must edit the QCG-Computing service configuration file again and update the content of the <ServiceURL> elements (in <Module xsi:type="smc:notification_wsa"> section). For e.g. if in the PREFIX/etc/qcg-ntfd.xml one can find <Host>example.com<Host> and <Port>19005<Port> the <ServiceURL> in PREFIX/etc/qcg-compd.xml must be set to http://example.com:19005/.
Note: You must restart the QCG-Computing service after updating the qcg-compd.xml configuration file.
When you start the QCG-Notification service and update the QCG-Computing configuration try to submit a simple job and check the QCG-Computing log file to see if there are now any error messages on sending notifications, e.g.:
tail -f /opt/qcg/var/log/qcg-comp/qcg-compd.log INF Sep 17 16:15:01 24201 0x44b22940 [notification_ws] Sending notify message (topic = ActivityState/TerminalState/Finished, activity_id = 0544b24a-e960-400e-4910-f1a893632610, status = Finished)
QCG-Notification Installation in PL-Grid
There are available RPM packages for installation QCG-Notification on the PL-Grid infrastructure. For detailed instructions follow this link?.