Tho*_*ich 4 java olap ssas mdx xmla
我目前的任务是构建某种健康检查应用程序,稍后将其包含在 jboss 环境中。但首先要说的是。我需要访问 3 种不同类型的数据库:MS SQL 关系数据库、TM1 和 MS SQL 分析服务。虽然前两个似乎是可以管理的,但我在尝试通过 java 访问 Analysis Services 时遇到了问题。最常见的是,olap4j似乎使用了该库,但这是基于msmdpump.dllIIS 的隧道响应。我们无法使用此方法,因为 IIS 未在使用中,并且我们没有对 Analysis Services 服务器的系统访问权限。
简而言之:如何在不使用 Java 的情况下访问 Analysis Services msmdpump.dll?我们需要以 MDX 或 XMLA 发送简单的查询。客户端和服务器均使用Windows Server 2008 R2。Analysis Services 版本也是 2008 R2。Analysis Services 作为一项服务提供给我们,我们无权访问系统本身。
使用 powershell 脚本访问 Analysis Services 并通过 java 调用该脚本似乎是一种选择。但如果有更好的选择,我宁愿避免这种方法。
谢谢你的帮助!
如果您想从 Java 调用 Analysis Services,我认为您无法避免 IIS 中的 msmdpump.dll。
Analysis Services 服务器本身在结构上使用 SOAP,但使用 Microsoft 特定的二进制 SOAP 格式(请参阅http://sqlblog.com/blogs/mosha/archive/2005/12/02/analysis-services-2005-protocol-xmla-over-tcp -ip.aspx了解一些详细信息)。ADOMD.NET 客户端驱动程序和 msmdpump.dll 只能理解此通信协议。因此,您可以使用 .net 或任何能够与 .net 交互的语言编写应用程序 - 或者您可以在客户端上使用任何可以通过 IIS 中托管的 msmdpump.dll 发送和接收 http 请求的环境。实际上,msmdpump.dll 只是在使用二进制压缩 XML 的 TCP 和使用未压缩标准 XML 的 http 之间进行转换(以及在 http 身份验证机制和集成安全性之间进行转换,这在 Java 中也很难实现)。
据我所知,微软声称对其二进制协议有一些权利,因此,如果您尝试自己开发一个直接从 Java 与 AS 对话的工具,您甚至可能会侵犯他们的权利。
因此,不使用 IIS 中的 msmdpump.dll 作为 Java 应用程序和 AS 服务器之间的代理的唯一方法是在 .net 中开发自己的代理,该代理或多或少会实现 msmdpump.dll 已经执行的操作:使用 TCP 之间的转换二进制压缩的 XML 以及您在 .net 组件和 Java 组件之间定义的一些其他协议,可能只是交换 XMLA 请求和 XML 答案。或者,您可以在 ADOMD.NET 和 Java 应用程序之间实现更高级的 API。但在这种情况下,没有办法绕过一些 .net 开发,我认为这不值得付出努力和复杂性。
| 归档时间: |
|
| 查看次数: |
3380 次 |
| 最近记录: |