[[PageOutline]]
= QCG-Notification Installation in !QosCosGrid=
Within !QosCosGrid the QCG-Notification service is used for brokering notification messages about 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 [[http://www.qoscosgrid.org/trac/qcg-computing|QCG-Computing]] service QCG-Notification requires the [[http://www.qoscosgrid.org/trac/qcg-core|QCG-Core]] library to be installed. If this prerequisite is fulfilled the QCG-Notification installation can be done in a few simple steps:
{{{
#!div style="font-size: 90%"
{{{#!sh
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:
{{{
#!div style="font-size: 90%"
{{{#!sh
useradd -d /opt/qcg/var/log/qcg-ntf/ -M qcg_ntf
}}}
}}}
Give the `qcg_ntf` user ownership of the log directory:
{{{
#!div style="font-size: 90%"
{{{#!sh
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:
{{{
#!div style="font-size: 90%"
{{{#!sh
/opt/qcg/sbin/qcg-ntfd
}}}
}}}
or if you want the service not to daemonize and print all logs to console type:
{{{
#!div style="font-size: 90%"
{{{#!sh
/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.:
{{{
#!div style="font-size: 90%"
{{{#!sh
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:
1. 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:
{{{
#!div style="font-size: 90%"
{{{#!xml
127.0.0.1
2211
...
}}}
}}}
Similarly, the part of `qcg-ntf-consumer.xml` may have a following form:
{{{
#!div style="font-size: 90%"
{{{#!xml
127.0.0.1
2212
...
}}}
}}}
2. Start the `qcg-ntfd` in a debug mode:
{{{
#!div style="font-size: 90%"
{{{#!sh
/opt/qcg/sbin/qcg-ntfd -d
}}}
}}}
3. Start the `qcg-ntf-consumer` in a debug mode:
{{{
#!div style="font-size: 90%"
{{{#!sh
/opt/qcg/sbin/qcg-ntf-consumer -d
}}}
}}}
4. Using the sample client program create a subscription in the QCG-Notification service:
{{{
#!div style="font-size: 90%"
{{{#!sh
./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'
...
}}}
}}}
'''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`
5. 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:
{{{
#!div style="font-size: 90%"
{{{#!sh
./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="
...
INF May 17 14:19:32 1134 0xa0262720 [qcg-client-gsoa] Notification sent successfully
...
}}}
}}}
6. Check the output of `qcg-ntfd` and output of `qcg-ntf-consumer`. The outputs' scripts, in order, should be simillar to the following ones:
{{{
#!div style="font-size: 90%"
{{{#!default
...
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'
...
}}}
{{{#!default
...
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: tns:ActivityState/Queued
...
}}}
}}}
7. Finally remove the created subscription:
{{{
#!div style="font-size: 90%"
{{{#!default
./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 `` elements (in `` section). For e.g. if in the `PREFIX/etc/qcg-ntfd.xml` one can find `example.com` and `19005` the `` 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.:
{{{
#!div style="font-size: 90%"
{{{#!sh
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 [[installation_in_PL-Grid|link]].