vol.2「XML Web サービスで簡易モニタを作ってみよう」XML Web サービスから MOM のデータベースにアクセス公開日: 2004 年 9 月 6 日 河端 善博 MOM 2005 の SDK にも XML Web サービスが提供されていますが、これは、他の製品と MOM 2005 の連携用に作られているようです。また、各種クラス ライブラリも用意されていますが、クラスのドキュメントが執筆時点で完備されていません。そこで、今回はこれらの SDK の機能を利用せず、直接 MOM 2005 のログが蓄積されるデータベースにアクセスすることにしました。
XML Web サービス MomMoniService の本体は、MomState.asmx.cs で構成していて、公開しているメソッドは、GetSummaryStateMainAndRoleRollup になります。 このメソッドは、DataSet 型で、2 つのテーブル「StateMain」「StateRoleRollup」を返してきます。テーブルとストアド プロシージャの関係は、次のとおりです。
public DataSet GetSummaryStateMainAndRoleRollup(string groupName1, string groupName2, string criteria, string roleIdList, string statusList) { DataSet result = new DataSet(); using (SqlConnection c = new SqlConnection(cs)) { c.Open(); using (SqlCommand cmd = new SqlCommand("p_SummaryStateMain", c)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@GroupName1", groupName1); cmd.Parameters.Add("@GroupName2", groupName2); cmd.Parameters.Add("@Criteria", criteria); cmd.Parameters.Add("@RoleIdList", roleIdList); cmd.Parameters.Add("@StatusList", statusList); using (SqlDataAdapter a = new SqlDataAdapter(cmd)) { a.Fill(result, "StateMain"); } } using (SqlCommand cmd = new SqlCommand("p_SummaryStateRoleRollup", c)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@GroupName1", groupName1); cmd.Parameters.Add("@GroupName2", groupName2); cmd.Parameters.Add("@Criteria", criteria); cmd.Parameters.Add("@RoleIdList", roleIdList); cmd.Parameters.Add("@StatusList", statusList); using (SqlDataAdapter a = new SqlDataAdapter(cmd)) { a.Fill(result, "StateRoleRollup"); } } c.Close(); } return result; } XML Web サービスができると、図のようにして、参照することができます。
図 7: MomMoniService を XML Web サービスとして公開 ページのトップへ |
目次著者 |