<?xml version="1.0" encoding="utf-8" ?>
<!-- generator="crazycoder cms 1.0(beta)" -->
<rss version="2.0" xmlns:sns="http://www.crazycoder.cn/rss/news">
	<channel>
		<title>webspheremqjms</title>
		<description></description>
		<link>http://CrazyCoder.cn/Tag/110696/Index.html</link>
		<lastBuildDate>2010-08-01</lastBuildDate>
		<generator>CrazyCoder 1.0(beta)</generator>
		<language>zh-cn</language>
		<copyright>Copyright 1996 - 2008 疯狂代码  All Rights Reserved.</copyright>
		<pubDate>2010-08-01</pubDate>
		<item>
			<title><![CDATA[webspheremqjms:使用 Windows Active Directory 服务器进行 WebSphere MQ JMS 和 IBM Message Service 客户机的 JNDI 查找]]></title>
			<link>http://CrazyCoder.cn/DeveloperUtil/Article78976.html</link>
			<description>
				<![CDATA[

					
          
	  　　介绍<br/><br/>　　本文为您展示了如何配置 Microsoft&reg; Windows&reg; Active Directory Server (ADS) 及其内容<img src='/icons/19872dou.gif' />以用于 WebSphere MQ Java Messaging Service (JMS) 客户机以及 IBM Message Service Client for C/C<img src='/icons/19872jiajia.gif' /> 和 .NET <img src='/icons/19872de.gif' /> JNDI 查找<img src='/icons/19872dou2.gif' /><br/><br/>　　安装 Windows ADS 需要<img src='/icons/19872yi.gif' />个 Windows 2003 Server OS<img src='/icons/19872dou2.gif' />安装 ADS 时<img src='/icons/19872dou.gif' />经常要求您将其配置为域控制器或者作为域控制器<img src='/icons/19872de.gif' /><img src='/icons/19872yi.gif' />部分<img src='/icons/19872dou2.gif' />本文为您展示了如何配置 ADS 使其像 IBM Tivoli Directory Server 或 Open LDAP 那样作为单独<img src='/icons/19872de.gif' /> LDAP 服务器进行 LDAP 查找<img src='/icons/19872dou2.gif' /><br/><br/>　　配置 ADS 模式<br/><br/>　　目录服务成为了服务<img src='/icons/19872de.gif' /><img src='/icons/19872yi.gif' />部分<img src='/icons/19872dou.gif' />不需要显式重启<img src='/icons/19872dou2.gif' />对于 JNDI 查找<img src='/icons/19872dou.gif' />您需要添加使用 Java 模式<img src='/icons/19872de.gif' />对象<img src='/icons/19872dou.gif' />比如 Connection Factory 和 Destination 对象<img src='/icons/19872dou2.gif' />默认情况下<img src='/icons/19872dou.gif' />ADS 不支持 Java 模式<img src='/icons/19872dou.gif' />并且在您试图添加 JNDI 对象时将显示无法绑定对象<img src='/icons/19872de.gif' /><img src='/icons/19872cuowu.gif' /><img src='/icons/19872dou2.gif' />因此<img src='/icons/19872dou.gif' />需要先将 Java 模式导入到服务器 &mdash;&mdash; 可以从 Sun 公司得到 Java 模式<img src='/icons/19872dou2.gif' />可以使用 ADS 模式管理工具进行验证<img src='/icons/19872dou2.gif' />如果第<img src='/icons/19872yi.gif' />次配置 ADS<img src='/icons/19872dou.gif' />必须使用 regsvr32 schmmgmt.dll 将模式管理工具添加到 Microsoft 管理控制台 (MMC)<img src='/icons/19872dou2.gif' />使用添加/删除管理单元来检查 ADS 模式:<br/><br/>　　使用 MMC 查看 ADS 模式<br/><br/><img width="550" height="398" src="http://CrazyCoder.cn/WebFiles/20103/79c66712-2978-4eec-b818-de6e7a79c820.jpeg" _disibledevent=><br/><br/>
	  
	 <!-- 分页 -->
	 
	 
					
          
	  　　查看原图(大图)<br/><br/>　　将 JNDI 对象添加到 ADS<br/><br/>　　为了使用方便<img src='/icons/19872dou.gif' />创建<img src='/icons/19872yi.gif' />个基目录来容纳所有必要<img src='/icons/19872de.gif' /> Connection Factory 和 Destination 对象<img src='/icons/19872dou2.gif' />使用 ADSI Editor 管理单元将 LDAP 容器添加到根域<img src='/icons/19872dou2.gif' />在安装 Windows ADS 时<img src='/icons/19872dou.gif' />上述举例使用 puppet.do<img src='/icons/19872main.gif' />.com 作为域名<img src='/icons/19872dou.gif' />这样根域将具有<img src='/icons/19872yi.gif' />个可分辨名称(Distinguished Name<img src='/icons/19872dou.gif' />DN) dc=puppet,dc=do<img src='/icons/19872main.gif' />,dc=com<img src='/icons/19872dou2.gif' />使用 ADS Editor 添加容器 XMSTEST<img src='/icons/19872dou.gif' />其 object<img src='/icons/19872class.gif' /> 名为 Organizational unit<img src='/icons/19872dou2.gif' /><br/><br/>　　将条目 (entry) 添加到 ADS<br/><br/><img width="550" height="371" src="http://CrazyCoder.cn/WebFiles/20103/15a76192-8947-4459-bd70-1e917cc1528b.jpeg" _disibledevent=><br/><br/>　　查看原图(大图)<br/><br/>　　添加内容<img src='/icons/19872de.gif' /> Base DN 为 ou=XMSTEST,dc=puppet,dc=do<img src='/icons/19872main.gif' />,dc=com<img src='/icons/19872dou2.gif' />使用 WebSphere MQ JMS Admin 或 WebSphere MQ V7 Explorer 的类<img src='/icons/19872de.gif' />工具将客户机使用<img src='/icons/19872de.gif' /> Connection Factory 和 Destination 对象(队列/主题)以及任何其他对象添加到这个 Base DN<img src='/icons/19872dou2.gif' />CN=CF1 是<img src='/icons/19872yi.gif' />个具有队列管理器<img src='/icons/19872de.gif' /> Connection Factory 对象<img src='/icons/19872dou.gif' />其主机、通道和侦听器<img src='/icons/19872de.gif' />详细信息如下:<br/><br/>　　MQ Connection Factory 对象<br/><br/><img width="550" height="399" src="http://CrazyCoder.cn/WebFiles/20103/311ea6c4-c3a1-458d-bae2-9cc9bc1b1dfe.jpeg" _disibledevent=><br/><br/>
	  
	 <!-- 分页 -->
	 
	 
					
          
	  　　查看原图(大图)<br/><br/>　　CN=QD 是在 Windows ADS 中定义<img src='/icons/19872de.gif' /> MQ 目标对象:<br/><br/>　　MQ 目标对象<br/><br/><img width="409" height="320" src="http://CrazyCoder.cn/WebFiles/20103/81c44b7d-5f3a-4be4-840c-24569b49ab45.jpeg" _disibledevent=><br/><br/>　　配置 ADS 以用于客户机<img src='/icons/19872de.gif' /> JNDI 查找<br/><br/>　　客户机可能运行在 ADS 域内<img src='/icons/19872dou.gif' />也可能运行在域外<img src='/icons/19872dou.gif' />因此您必须启用 ADS <img src='/icons/19872de.gif' /> null bind 和匿名登录<img src='/icons/19872dou2.gif' />默认情况下<img src='/icons/19872dou.gif' />这两种情况在 ADS 上都是不允许<img src='/icons/19872de.gif' /><img src='/icons/19872dou.gif' />因此 IBM Message Service 客户机和 WebSphere MQ JMS 从 ADS 上获取对象<img src='/icons/19872de.gif' />任何连接都会生成 LDAP 搜索<img src='/icons/19872cuowu.gif' /><img src='/icons/19872dou2.gif' />所以您必须在容纳这些对象<img src='/icons/19872de.gif' /> Base DN (ou=XMSTEST,dc=puppet,dc=do<img src='/icons/19872main.gif' />,dc=com) 中启用 null bind 和匿名登录<img src='/icons/19872dou2.gif' />向 ADS 提供 null bind 和匿名登录需要两个步骤:<br/><br/>　　设置该域<img src='/icons/19872de.gif' />目录服务<img src='/icons/19872de.gif' /> dsheuritics 属性<br/><br/>　　将域条目设置为 ANONYMOUS LOGON<br/><br/>　　修改 dsheuristics<br/><br/>　　域<img src='/icons/19872de.gif' /> dsheuritics 属性<img src='/icons/19872de.gif' />第 7个<img src='/icons/19872zifu.gif' />必须被设置为 2<img src='/icons/19872dou2.gif' />如果以前设置过该值<img src='/icons/19872dou.gif' />则除第 7个<img src='/icons/19872zifu.gif' />外所有值保持不变<img src='/icons/19872dou.gif' />将第 7个<img src='/icons/19872zifu.gif' />设置为 2<img src='/icons/19872dou2.gif' /><br/><br/>　　要为某个 ADS 域设置 dsheuritics 属性:<br/><br/>　　打开 ADSI edit<img src='/icons/19872dou2.gif' /><br/><br/>　　为 Configuration[Do<img src='/icons/19872main.gif' /> name] 单击 +<img src='/icons/19872dou.gif' />例如 Configuration[puppet.do<img src='/icons/19872main.gif' />.con]<img src='/icons/19872dou2.gif' /><br/><br/>　　对 CN=Configuration 单击 +<img src='/icons/19872dou2.gif' /><br/><br/>　　在 CN=Configuration 下面找到 CN=Services 并单击 CN=Services <img src='/icons/19872de.gif' /> +<img src='/icons/19872dou2.gif' /><br/><br/>　　在 CN=Services 下面找到 CN=Windows NT 并单击 CN=Windows NT <img src='/icons/19872de.gif' /> +<img src='/icons/19872dou2.gif' /><br/><br/>
	  
	 <!-- 分页 -->
	 
	 
					
          
	  　　在 CN=Windows NT 下面找到 CN=Directory Service<img src='/icons/19872dou.gif' />右键单击它并选择 Properties<img src='/icons/19872dou2.gif' /><br/><br/>　　在 Properties 面板中<img src='/icons/19872dou.gif' />选择 dsheuristics 属性<img src='/icons/19872dou.gif' />然后单击 Edit<img src='/icons/19872dou2.gif' /><br/><br/>　　在 String Attribute Editor 窗口中<img src='/icons/19872dou.gif' />键入 0000002<img src='/icons/19872dou2.gif' /><br/><br/>　　确认进行了更改:在每<img src='/icons/19872yi.gif' />个面板中单击 OK<img src='/icons/19872dou2.gif' /><br/><br/>　　dshueritics<br/><br/><img width="550" height="386" src="http://CrazyCoder.cn/WebFiles/20103/4805b64f-69f6-4354-858a-1144351034cc.jpeg" _disibledevent=><br/><br/>　　查看原图(大图)<br/><br/>　　提供 ANONYMOUS LOGON<br/><br/>　　授予 NT AUTHORITY\ANONYMOUS LOGON 权限以便访问要通过匿名查找启用位置<img src='/icons/19872de.gif' />对象<img src='/icons/19872dou2.gif' />使用 Active Directory users and computers 打开 Base<img src='/icons/19872dou2.gif' />例如:域 puppet.do<img src='/icons/19872main.gif' />.com 下<img src='/icons/19872de.gif' /> XMTEST:<br/><br/>　　打开 Active Directory users and computers<img src='/icons/19872dou2.gif' />确保选中了 View advanced features<img src='/icons/19872dou2.gif' /><br/><br/>　　找到要公开<img src='/icons/19872de.gif' />对象<img src='/icons/19872dou.gif' />然后右键单击它并单击 Properties<img src='/icons/19872dou2.gif' /><br/><br/>　　在 Properties 页面上<img src='/icons/19872dou.gif' />选择 Security 选项卡<img src='/icons/19872dou.gif' />单击 Add<img src='/icons/19872dou.gif' />键入 ANONYMOUS LOGON<img src='/icons/19872dou2.gif' />单击 OK<img src='/icons/19872dou2.gif' /><br/><br/>　　在 Security 选项卡中<img src='/icons/19872dou.gif' />ADS 用户和组列表显示在组或用户名下<img src='/icons/19872dou2.gif' />从该列表中<img src='/icons/19872dou.gif' />选择 ANONYMOUS LOGON<img src='/icons/19872dou.gif' />并在它下面<img src='/icons/19872de.gif' /> "Permission for ANONYMOUS LOGON" 部分选中 Allow 下面<img src='/icons/19872de.gif' /> Read 复选框<img src='/icons/19872dou2.gif' /><br/><br/>　　单击 OK:
<br/><br/>　　匿名登录 #1<br/><br/><img width="550" height="426" src="http://CrazyCoder.cn/WebFiles/20103/0eb30b57-72e2-41cb-8928-5b7642d79513.jpeg" _disibledevent=><br/><br/>
	  
	 <!-- 分页 -->
	 
	 
					
          
	  　　查看原图(大图)<br /><br /><br/><br/>　　匿名登录 #2<br/><br/><img width="550" height="374" src="http://CrazyCoder.cn/WebFiles/20103/df0d2d93-5f2b-40ed-a3f9-74f749d3df8c.jpeg" _disibledevent=><br/><br/>　　查看原图(大图)<br /><br /><br/><br/>　　下<img src='/icons/19872yi.gif' />步是为子条目提供 ANONYMOUS LOGON 查找:<br/><br/>　　在 Active Directory Users and Computers 中<img src='/icons/19872dou.gif' />右键单击 OU 对象<img src='/icons/19872dou.gif' />它承载了 Connection Factory 和 Destination 对象<img src='/icons/19872dou.gif' />并单击菜单中<img src='/icons/19872de.gif' /> Properties<img src='/icons/19872dou2.gif' />例如:ou=xmsTEST,dc=puppet,dc=do<img src='/icons/19872main.gif' />,dc=com<img src='/icons/19872dou2.gif' /><br/><br/>　　在 Security 选项卡中<img src='/icons/19872dou.gif' />单击 Advanced<img src='/icons/19872dou2.gif' /><br/><br/>　　在 "Advanced security <img src='/icons/19872set.gif' />ting" 窗口中<img src='/icons/19872dou.gif' />选择 Permission 选项卡并单击 Add<img src='/icons/19872dou2.gif' />在打开<img src='/icons/19872de.gif' />对话框中<img src='/icons/19872dou.gif' />键入 ANONYMOUS LOGON<img src='/icons/19872dou2.gif' />单击 OK<img src='/icons/19872dou2.gif' />将打开新对话框窗口<img src='/icons/19872dou2.gif' /><br/><br/>　　在这个 "Permissions entry for" 面板中<img src='/icons/19872dou.gif' />Name 字段将显示 ANONYMOUS LOGON<img src='/icons/19872dou2.gif' />从 Apply _disibledevent=><br/><br/>　　查看原图(大图)<br /><br /><br/><br/>
	  
	 <!-- 分页 -->
	 
	 
					
          
	  　　ADS 现在已经准备好了<img src='/icons/19872dou.gif' />可以使用 IBM Message Service 客户机和 WebSphere MQ JMS 客户机进行 JNDI 查找了<img src='/icons/19872dou2.gif' /><br/><br/>　　使用 IBM Message Service 客户机或 IBM WebSphere MQ JMS 客户机<br/><br/>　　以下是使用到 LDAP 服务器<img src='/icons/19872de.gif' /> JNDI 查找<img src='/icons/19872de.gif' /> IBM Message Service 客户机代码<img src='/icons/19872dou2.gif' />ADS 中 JNDI 查找<img src='/icons/19872de.gif' /> URL 是 ldap://&lt;&lt;IP address of the machine that hosts ADS&gt;&gt;/&lt;&lt;Base dn&gt;&gt;<img src='/icons/19872dou2.gif' />所以在本例中<img src='/icons/19872dou.gif' />它是:ldap://9.122.17.34/ou=xmsTEST,dc=puppet,dc=do<img src='/icons/19872main.gif' />,dc=com<img src='/icons/19872dou2.gif' /><br/><br/>清单 1. 最大宽度<img src='/icons/19872de.gif' />样例代码清单<br/><br/><code>/*　Create　an　Initial　Context　object　*/　<br /><img src='/icons/19872if.gif' />　(rc　<img src='/icons/19872dd.gif' />　xms_OK)　<br />　{　<br />　logComment("Creating　an　Initial　Context　object",　&amp;testD);　<br />　　rc　=　xmsInitialContextCreate("ldap://9.122.17.34/ou=XMSTEST,dc=puppet,　<br />　　dc=do<img src='/icons/19872main.gif' />,dc=com　",　<br />　　　&amp;hContext,　connSet.errorBlock);　<br />　checkRCError(rc,functionCall,connSet.errorBlock,&amp;testD);　<br />　}　<br />/*　Lookup　ConnectionFactoryObject　in　Initial　Context　*/　<br />　<img src='/icons/19872if.gif' />　(rc　<img src='/icons/19872dd.gif' />　xms_OK)　<br />　{　<br />　functionCall　=　"<img src='/icons/19872main.gif' />　-&gt;　xmsInitialContextLookup";　<br />　logComment("Looking　up　object　in　Initial　Context",　&amp;testD);　<br />rc　=　xmsInitialContextLookup(hContext,　"cn=CF",　(xmsHObj　*)　&amp;hConnFact,　<br />　&amp;type,　connSet.errorBlock);　<br />　checkRCError(rc,　functionCall,　connSet.errorBlock,　&amp;testD);　<br />　}　<br />　<br />　/*　Lookup　object　in　Initial　Context　*/　<br />　<img src='/icons/19872if.gif' />　(rc　<img src='/icons/19872dd.gif' />　xms_OK)　<br />　{　<br />　functionCall　=　"<img src='/icons/19872main.gif' />　-&gt;　xmsInitialContextLookup";　<br />　logComment("Looking　up　object　in　Initial　Context",　&amp;testD);　<br />　　rc　=　xmsInitialContextLookup(hContext,　"cn=QD",　(xmsHObj　*)　&amp;hDest,　<br />　　　&amp;type,　connSet.errorBlock);　<br />　checkRCError(rc,　functionCall,　connSet.errorBlock,　&amp;testD);　<br />　}　</code><br/><br/>
	  
	 <!-- 分页 -->
	 
	 
					
          
	  　　样例代码<img src='/icons/19872de.gif' />输出<br/><br/><img width="463" height="221" src="http://CrazyCoder.cn/WebFiles/20103/eba34969-9f79-423d-baec-3651c4cf5e9e.jpeg" _disibledevent=><br/><br/>　　以下是使用到 LDAP 服务器<img src='/icons/19872de.gif' /> JNDI 查找<img src='/icons/19872de.gif' /> WebSphere MQ JMS 代码:<br/><br/>清单 2<br/><br/><code>Hashtable　htEnv　=　null;　<br />String　url　=　"ldap://9.122.17.34/ou=XMSTEST,dc=puppet,dc=do<img src='/icons/19872main.gif' />,dc=com";　<br />String　icf　=　"com.sun.jndi.ldap.LdapCtxFactory";　　<br />　<br />try{　<br />　htEnv　=　<img src='/icons/19872new.gif' />　Hashtable<img src='/icons/19872kh.gif' />;　<br />　htEnv.put(Context.INITIAL_CONTEXT_FACTORY,　icf);　<br />　htEnv.put(Context.PROVIDER_URL,　url);　<br />　ConnectionFactory　qFactory　=　null;　<br />　Connection　qConnection　=　null;　<br />　Session　qSession　=　null;　<br />　MessageProducer　sender　=　null;　<br />　InitialContext　ctx　=　<img src='/icons/19872new.gif' />　InitialDirContext(htEnv);　<br />　<br />ConnectionFactory　qcfFactory　=　(ConnectionFactory)　　　　　ctx.lookup("cn=CF");　<br />Destination　dest　=　(Destination)　ctx.lookup("cn=QD");　<br />　<img src='/icons/19872System.gif' />.out.pr<img src='/icons/19872int.gif' />ln("Creating　Connection");　<br />　qConnection　=　qcfFactory.createConnection<img src='/icons/19872kh.gif' />;　<br />　qConnection.start<img src='/icons/19872kh.gif' />;　<br />　qSession　=　qConnection.createSession(false,　Session.AUTO_ACKNOWLEDGE);　<br />　<br />sender　=　qSession.createProducer(dest);　<br />　TextMessage　txtMsg　=　null;　<br />　txtMsg　=　qSession.createTextMessage<img src='/icons/19872kh.gif' />;　<br />　txtMsg.<img src='/icons/19872set.gif' />Text("TC　-　JMS　:)");　<br />　sender.send(txtMsg);　<br />　<br />}　<br />catch(Exception　e){　<br />　e.pr<img src='/icons/19872int.gif' />StackTrace<img src='/icons/19872kh.gif' />;　<br />　((JMSException)　e).getLinkedException<img src='/icons/19872kh.gif' />.pr<img src='/icons/19872int.gif' />StackTrace<img src='/icons/19872kh.gif' />;　<br />}　</code><br/><br/><br/><br/>　　结束语<br/><br/>　　本文介绍了如何设置 Windows ADS 以用于 WebSphere MQ Java Messaging Service 客户机和 IBM Message Service Client for C/C<img src='/icons/19872jiajia.gif' /> 以及 IBM Message Service Client for .NET <img src='/icons/19872de.gif' /> JNDI 查找<img src='/icons/19872dou2.gif' /><br/><br/><br/><br/>
	  
	 <!-- 分页 -->
	 
	  <a href="/mypdf/78976.pdf" title="查看 webspheremqjms:使用 Windows Active Directory 服务器进行 WebSphere MQ JMS 和 IBM Message Service 客户机的 JNDI 查找 的PDF电子文档">[查看PDF电子文档]</a>				]]>
			</description>
			<author></author>
			<category>编程综合</category>
			<pubDate>2010-03-10</pubDate>
			<guid>http://CrazyCoder.cn/DeveloperUtil/Article78976.html</guid>
		</item>
	</channel>
</rss>
