Solaris WBEM Services の管理

Solaris_SerialPortSetting とロギングの定義

Solaris_SerialPortSetting 定義では、CIM_SerialPortSetting クラスを Solaris オペレーティング環境に拡張します。Solaris_LogRecord クラスでは、WBEM システムログに書き込めるデータの型を定義します。

 
 [Provider ("com.sun.wbem.solarisprovider.Solaris")] 
class Solaris_SerialPortSetting:CIM_ElementSetting
{
        [override("Element")] 
    Solaris_SerialPort REF Element;
       [override("Setting")] 
    Solaris_SerialPortConfiguration REF Setting;
};
 
	[Provider ("com.sun.wbem.solarisprovider.Solaris")]
class Solaris_LogRecord 
{
 

WBEM システムログは、アプリケーションログ、システムログ、セキュリティログという 3 つの一般的なカテゴリに分類できます。ログレコードには、情報ログ、警告ログ、エラーログといった異なる重要度レベルが割り当てられます。アプリケーションの中で Solaris_LogRecord 呼び出しを使ってロギングを有効にする方法については、第 5 章「イベントのロギング」 の「API によるロギングの有効化」を参照してください。

すべてのログレコードには、Solaris_LogRecord クラスに定義されている標準形式を使用します。Solaris_LogRecord のプロパティには、アプリケーションからログレコードに渡されるデータの型が指定されています。CIM Object Manager や CIM Object Manager Repository は、記録されるデータを識別するためにデータの一部を必要とします。このようなプロパティには、読み取り専用であることを示すために [read, key] 修飾子が付けられます。このようなプロパティのデータは表示できますが、変更はできません。次のリストは、Solaris_Core1.0.mof ファイルの Solaris_LogRecord に割り当てられるプロパティを示しています。

{
	[read, key]
	sint64 RecordID;
 
	[read, key]
	sint32 RecordHashCode;
 
	[read, key]
	string Filename;
 
	[read]
	datetime RecordDate;
 
	[read, write]
	sint32 category;
 
	[read, write]
	sint32 severity;
 
	[read, write]
	string AppName;
 
	[read, write]
	string UserName;
 
	[read, write]
	string ClientMachineName;
 
	[read, write]
	string ServerMachineName;
 
	[read, write]
	string SummaryMessage;
 
	[read, write]
	string DetailedMessage;
	[read, write]
	string data;
 
	[read, write]
	boolean SyslogFlag;
};

Solaris_LogRecord のプロパティを定義したら、Solaris_LogService クラスを CIM_Service の拡張として定義します。Solaris_LogService ではロギングサービスの操作を制御します。

	[Provider ("com.sun.wbem.solarisprovider.Solaris")]
class Solaris_LogService : CIM_Service
{

Solaris_LogService クラスに指定するそれぞれの関数では、ログファイルのデータをどのように処理するかを定義します。たとえば、clearLog 関数では、ログファイルのすべてのデータを消去し、ログファイルを一新して新しいデータを受け取れるようにします。

{
	sint32 clearLog([IN] string fileName);
 
	sint64 getNumRecords([IN] string fileName, [OUT] sint64 numRec);
 
	sint32 listLogFiles([OUT]string logFiles[]);
 
	sint32 getCurrentLogFileName([OUT] string fileName);
 
	sint32 getNumLogFiles([OUT] sint32 numFiles);
 
	sint64 getLogFileSize([OUT] sint64 fileSize);
 
	sint32 getSyslogSwitch([OUT] string switch); 
 
	sint32 getLogStorageName([OUT] string fileName); 
 
	sint32 getLogFileDir([OUT] string dirName); 
 
	sint32 setProperties([IN] string data[]); 
};

Solaris_LogServicePropertiesクラスでは、ログファイルの次の属性を制御します。