エディタで、ソフトウェア使用率監視コマンドを埋め込む先のアプリケーションソースコードファイルを開きます。
次のヘッダファイルをアプリケーションソースコードに追加します。
#include <swusage.h> |
アプリケーションの開始を報告する swu_rpt 関数を追加します。
swu_rpt ("Server_name", "Identifier", SWU_BEGIN, "Product_name", avl)
|
アプリケーションの終了を報告する swu_rpt 関数を追加します。
swu_rpt ("Server_name", "Identifier", SWU_END, "Product_name", avl)
|
次のいずれかの引き数を使って、アプリケーションソースコードをコンパイルします。
ライブラリを静的にリンクする場合
$ ... -I/opt/SUNWswusg/include -L/opt/SUNWswusg/lib ¥ -Bstatic -lswusage -lnsl ... |
ライブラリを動的にリンクする場合
$ ... -I/opt/SUNWswusg/include -R/opt/SUNWswusg/lib ¥ -L/opt/SUNWswusg/lib -lswusage -lnsl ... |
以下の例はソフトウェア使用率監視関数が埋め込まれたアプリケーションを示したものです。
#include <stdio.h> /* definition of NULL */
#include <swusage.h> /* swu_rpt() prototype, swusage_alist definition */
#define ATTRIBUTE_COUNT 3
main()
{
struct swusage_alist avl[ATTRIBUTE_COUNT];
/*
*ソフトウェア使用率監視レコードに入れる、製品固有の属性と値の組み合わせを定義
*/
avl[0].u_attr = "ATTR_1";
avl[0].u_value = "val_1";
avl[1].u_attr = "ATTR_2";
avl[1].u_value = "val_2";
/*
* 属性値リストの終端
*/
avl[2].u_attr = NULL;
avl[2].u_value = NULL;
/*
* アプリケーションの開始 (Begin) レコードを生成
*/
swu_rpt("Server_name", "Identifier", SWU_BEGIN, "My product name", avl);
/*
* ここにアプリケーションが入る
*/
/*
* アプリケーションの終了 (End) レコードを生成
*/
swu_rpt("Server_name", "Identifier",SWU_END, "My product name", avl);
}
|
この例では、次のようなソフトウェア使用レポートエントリが使われます。
|
レポートエントリ 1 |
|
レポートエントリ 2 |
|
|---|---|---|---|
|
Type |
Admin/Usage |
Type |
Admin/Usage |
|
Product |
My product name |
Product |
My product name |
|
SubType |
Begin |
SubType |
End |
|
Time |
8148244876 |
Time |
8148244920 |
|
UserID |
30581 |
UserID |
30581 |
|
User |
jod |
User |
jod |
|
Host |
buck |
Host |
buck |
|
Domain |
forest.field.com |
Domain |
forest.field.com |
|
HostID |
1234567890 |
HostID |
1234567890 |
|
Locale |
C |
Locale |
C |
|
Version |
1 |
Version |
1 |
|
Usage Server |
Server_name |
Usage Server |
Server_name |
|
RecordID |
Identifier |
RecordID |
Identifier |
|
C_ATTR_1 |
val_1 |
C_ATTR_1 |
val_1 |
|
C_ATTR_2 |
val_2 |
C_ATTR_2 |
val_2 |