当前位置: 首页 > 知识库问答 >
问题:

如何连接到远程JMS提供程序?

司迪
2023-03-14

我需要高级步骤来连接到远程JMS提供程序。

我有一些客户端应用程序希望在JNDI中基于文件系统进行查找,以获得JMS提供程序的连接工厂。

我知道在JMS管理(MQ Explorer)中,我们可以创建连接工厂。这就是创造。绑定文件。我如何使用这个。将文件绑定到我的客户端应用程序系统?

客户端应用程序系统是否应该包含JMS管理员来创建。同一系统或中的绑定。是否应将绑定单独导入到客户端系统?

如果使用文件系统,则指定.绑定的路径为Provider url。此提供程序url(EG: F:/JMS)似乎是JMS Provider系统中存在的路径。如果. bindings文件导入客户端系统,那么客户端如何识别. bindings文件的路径?

当使用MQClient模式时,在连接工厂定义中使用ServerConnection通道的目的是什么?当JMS客户端通过JNDI绑定连接时,为什么需要服务器连接通道?

共有1个答案

尉迟宇定
2023-03-14

Q1)

How can I use this .bindings file into my client application system? 

. bindings文件必须放置在客户端系统可以访问的文件服务器上。例如,将. bindings文件放在文件服务器MyFileSvr的D:\JNDI-Directory文件夹中。然后在您的客户端机器中,D:\文件夹必须挂载为驱动器,例如F驱动器。然后在您的应用程序中,您可以将. bindings文件引用为

  // Instantiate the initial context
  String contextFactory = "com.sun.jndi.fscontext.RefFSContextFactory";
  Hashtable<String, String> environment = new Hashtable<String, String>();
  environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
  environment.put(Context.PROVIDER_URL, "file:/F:/JNDI-Directory");
  Context context = new InitialDirContext(environment);
  System.out.println("Initial context found!");

  // Lookup the connection factory
  JmsConnectionFactory cf = (JmsConnectionFactory) context.lookup(connectionFactoryFromJndi);

Q2)

Should the Client Application system contain the JMS Administerator to create the .bindings in the same system?or .bindings alone should be imported to the client system? 

请参见上面Q1的答案。最好将绑定文件保存在共享驱动器上,以便多个客户端应用程序可以访问。

第3季度)

If Filesystem is used,then a path specifying the .binding is given as Provider url.This provider url (EG: F:/JMS) seems to be the path present in JMS Provider system.If .bindings file imported in client system,then how the client can recognise the path of .bindings file?

再次查看Q1的答案。

第4季度)

 And What is the purpose of having ServerConnection channel in the Connection Factories definition when MQClient mode is used? When the JMS client connects through JNDI bindings ,why Server Connection channel is required?

服务器连接通道定义连接到IBM MQ队列管理器的MQ客户端应用程序(JMS或其他)所需的属性。JNDI绑定中的连接工厂对象将定义以下内容,以便应用程序连接到IBM MQ队列管理器

1) 运行队列管理器的主机名

2) 队列管理器正在侦听的端口

3)服务器连接通道名称。

4)队列管理器名称。

归根结底,JNDI绑定和服务器连接通道是不同的。

请阅读IBM MQ的在线文档以及MQ红皮书。

 类似资料:
  • 我试图从Websphere Application Server连接到外部JMS提供者。我们可以不使用Websphere MQ从Websphere Application Server连接到远程JMS提供者吗?

  • 在Weblogic中,我将JMS模块配置为“外部服务器”类型。在模块中,我设置了一个连接工厂,它有一个本地JNDI名称和一个远程JNDI名称。 我正在使用下面的Spring配置来尝试获取连接,但我在jndiName上不断遇到一个“name not found”错误,其中包含我尝试过的各种名称字符串。 有什么建议我可以试试吗?

  • 也许这是一个极端的新手问题,但是: 我将实现向队列发送消息。问题是,我只知道它是一个JMS队列,但不知道是哪个实现(它只是称为ESB)。 所以现在我必须有一个connectionFactory bean,我看到的所有示例都使用ActiveMqConnectionFactory。是否有任何通用工厂/实施?JMS是一种标准,所以我不应该受某些特定工厂实现的约束,对吗?

  • 我们正在寻找移动我们的解决方案,开始使用AWS简单队列服务,而不是兔子MQ。 现在我们使用JMS连接到我们的队列,使用一个. bindings文件配置jndi上下文进行连接。 是否可以使用. bindings文件来配置到AWS简单队列服务的连接配置区域,使用概要文件作为参数,所有这些都在。绑定文件? 如果是,你有如何做到这一点的例子吗?

  • 问题内容: 是否可以从本地Mac在托管在云中的Docker集群上执行命令?如果是,怎么办? 我想在本地从docker swarm上执行以下命令: 问题答案: 问题的答案可以在这里找到。 对于ubuntu机器需要做的是在路径中定义daemon.json文件,其内容如下: 上面的配置不安全,如果服务器是公共托管的,则不应使用。 对于安全连接,请使用以下配置: 如@BMitch所述,可以在此处找到生成证

  • 问题内容: 我已经在本地计算机上安装了MySQL Community Edition 5.5,并且希望允许远程连接,以便可以从外部源进行连接。 我怎样才能做到这一点? 问题答案: MySQL默认情况下允许这样做。 默认情况下禁用的是远程访问。如果要启用它,请在本地运行此SQL命令: 然后找到以下行并将其 注释 在文件中,该文件通常位于Unix / OSX系统上。在某些情况下,文件的位置是/etc/