问题标签 [ibm-jvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
335 浏览

java - Spring batch 3,IBM JVM 上的配置加载错误(BackToBackPatternClassifier)

使用 IBM 的 JRE 1.7 启动春季批处理作业时出现错误。

Spring Batch 版本是 3.0.7,Spring 版本是 4.3.5

Oracle JDK 1.7 不会发生此错误。它出现在我加载我的 Spring Batch XML 配置时,jobs-configuration.xml 甚至在工作开始之前。这个问题出现在我升级 Spring Batch 和 Spring 之后: org.springframework.batch.classify.BackToBackPatternClassifier from Spring Batch 变成 org.springframework.classify.BackToBackPatternClassifier (in Spring Retry)

工作配置.xml:

和 ClassifierCcsb01Writer:

0 投票
0 回答
566 浏览

java - MQ 5.7 和 IBM jre8,密码规范“TRIPLE_DES_SHA_US”的等效密码套件

我正在尝试使用 IBM JRE-8 over SSL 连接 MQ7.5。在 MQ 系统中,他们配置了 TRIPLE_DES_SHA_US,我们在我的 java 程序中使用SSL_RSA_WITH_3DES_EDE_CBC_SHA密码套件来连接 MQ。
但它给出了以下给定的错误。

code>

Steps i have followed
Certificated imported to truststore
executed java program with actual channel details of MQ.

Certificate Import to truststore:

Sample Program we are using.

调试日志:

任何人都可以请帮助/建议这个

0 投票
0 回答
1035 浏览

java - SAXParserFactory 和 DocumentBuilderFactory 的区别

SAXParserFactory 和 DocumentBuilderFactory 有什么区别。什么时候用哪一个?

分别:

javax.xml.parsers.SAXParserFactory

选择 SAX 解析器。默认情况下,使用 XML4J 库中的 org.apache.xerces.jaxp.SAXParserFactoryImpl。

javax.xml.parsers.DocumentBuilderFactory

选择文档构建器。默认情况下,使用 XML4J 库中的 org.apache.xerces.jaxp.DocumentBuilderFactoryImpl。

0 投票
1 回答
644 浏览

spring-boot - 无法使用 IBM JRE 1.8 启动 Spring Boot 可执行 jar

我们有一个 Spring Boot 应用程序,它被构建为一个可执行的 jar,并且使用 Oracle 和 OpenJDK JRE(使用 1.8 版本)运行良好。

但是,尝试使用 IBM 1.8 JRE 运行它会导致命令行出现以下错误。

如果我们执行 jar (using ./application.jar) 或 usingjava -jar application.jar

这导致我们更改打包以不使 jar 可执行,这允许我们使用java -jar application.jar. 因此,IBM JRE 似乎不喜欢启动脚本。

问题是如果可能的话,我们不希望为不同的部署环境使用两种打包方法。

有没有人知道为什么 IBM JRE 不喜欢 jar 文件前面的脚本,以及是否有任何命令行选项可以禁用任何检查它的功能?

0 投票
2 回答
148 浏览

java - Websphere 配置/IBM JVM:纯 java 的工作速度比在 tomcat 中慢得多

大家好。我遇到了下一个问题:处理需要使用 WAS 和 tomcat 在不同环境中部署的项目。使用的 WAS docer img:common/base-ibm-websphere:8.0.0.10 - 8.0 架构:x86_64

使用的Tomcat docker img:common/base-tomcat:7

从一开始就假设 WAS 出了点问题,因为最简单的请求会慢得多(x8 慢):

它在 x8 中的 WAS 上执行比在 Tomcat 上慢。组合测试结果:

在 WAS 端只配置了堆大小(超过 enoph)和数据库连接(与这个问题无关)。

在调整 IBM jVM / WAS 配置时,首先我应该注意什么?(现在我已经在研究 IBM 手册了,你可能会节省我的时间来避免冒烟测试不同的无效 JVM 属性)。

0 投票
1 回答
286 浏览

java - OpenJ9 是否支持 sun.misc.Contended 注解?

我创建了一个程序来检查是否@sun.misc.Contended生效。这个想法是,当@Contended生效时,注释类中的字段偏移量会更大。

如果我指定了-XX:-RestrictContended标志,我可以看到 OpenJDK 上偏移量的预期差异。我在 OpenJ9 11 (jdk-11.0.1+13, Eclipse OpenJ9 VM-11.0.1) 上没有看到任何区别。

OpenJDK 输出是

OpenJ9 的输出是

该程序是

0 投票
1 回答
94 浏览

java - spring-amqp 与 ibm jvm 的兼容性

我正在使用spring-amqpIBM JVM,并且在初始化兔子模板以使用它使用的 ssl 时sunx509,但 IBM JVM 与该算法不兼容,所以我得到:

我不确定如何覆盖使用,sunx509因为使用的算法是在 spring-amqp 源代码中定义的

我如下所示初始化rabbitmq配置有什么建议吗?

谢谢

0 投票
1 回答
420 浏览

java - 为什么 uri 变量不为 null 时 HttpUriRequest.getURI() 返回 null?

概括

我遇到了一个独特的场景,当实例中的变量不是时,对 httpcomponentsHttpUriRequest方法实例的调用getURI()正在返回。在这种情况下,不可能返回 a ,但这就是正在发生的事情。nullnullHttpUriRequest.getURI()null

代码演练

这是代码演练。它演示了该HttpUriRequest.getURI()方法如何不可能返回 a null,但它正在返回null

使用的相关库是

  • com.sun.jersey.contribs:jersey-apache-client4:jar:1.19.4
  • org.apache.httpcomponents:httpclient:jar:4.5.12

我们的内部应用程序调用第三方代码,这些代码用于jersey-apache-client4通过apache httpcomponents httpclient.

就本问题而言,请求从ApacheHttpClient4Handler.handle(ClientRequest)以下来源的调用开始。

  • 编号的内嵌注释将指导演练。

ApacheHttpClient4Handler类v1.19.4的相关来源

接口HttpUriRequestv4.5.12相关源码

抽象类HttpRequestBasev4.5.12 的相关源代码(HttpGet,HttpPost等扩展了这个)

HttpGetv4.5.12类的相关源代码(HttpPost等实现类似)

鉴于源演练和证明 Object 实例状态的可行性的支持性评论,调用如何request.getURI()返回null

环境

  • 此代码在 Linux 服务器 (JVM 8.0-5.40) 上的 IBM Liberty 下运行。
  • 此代码还在 Windows 服务器 (JVM 1.7) 上的 Wildfly 下运行。
  • 两种系统类型的代码相同。
  • 该代码在 Windows 服务器上从未出现上述问题。
  • 该代码在安装了 Liberty 管理控制台的 Liberty 服务器上不存在上述问题。

观察结果

  • 前2-3次直通ApacheHttpClient4Hander.handle(ClientRequest)成功不request.getURI()返回null;它仅在第 4 次和后续请求时才返回null

调查

以下是我迄今为止采取的一些调查步骤:

1 - 我在 SO 上创建了这个案例以获取群体思维洞察力。

2 - 我向 IBM 开了一个案例。

3 - 自定义ApacheHttpClient4Handler

  • 我通过 SL4J 向所有方法添加调试日志记录。

结果

  • 日志输出证明对的调用仅在进入HttpUriRequest.getURI()后才开始返回。nullApacheHttpClient4Handler.getHost(final HttpUriRequest request)
  • getHost(HttpUriRequest)在显示getURI()返回非空之前的任何调用。
  • 在添加调试日志之后,而不是在 2-3 和后续请求(每个 OBSERVATIONS)之后,HttpUriRequest.getURI()现在在 1-2(和后续)请求之后返回 null。我怀疑这是由于 debug logging 主动调用HttpUriRequest.getURI(),但我无法确认这一点,也不知道为什么场景现在更短了。

ApacheHttpClient4Handler4 -进一步定制

  • HttpUriRequest更改对的所有引用HttpRequestBase

结果

  • 这样做并没有解决问题;getURI()仍然返回null

5 - 自定义HttpRequestBase

  • 将调试日志添加到getURI()/setURI(...)方法

结果

  • 应用程序开始按设计工作,除了大量的调试日志!!!
  • 请参阅下面的主要更新部分。

6 - 自定义HttpGet,HttpPut等。

  • 向构造函数添加调试日志记录。

结果

  • 请参阅下面的主要更新部分。

7 - 将 IBM JVM 从 8.0-5.40 更新到 8.0-6.11

  • IBM 发行说明中与 NPE 相关的错误修复列表
  • IJ17563 | 调用具有大偏移量的 JAVA.LANG.STRING.INDEXOF API 时的 NPE
  • IJ19669 | 使用 JAVA 8 读取空的 PKCS12 密钥库时发生 NPE
  • IJ20528 | 原始包装类型对象的方法调用的 NPE 或 SEGFAULT
  • IJ23079 | 由不正确的 JIT 编译器优化导致的意外 NPE
  • TODO:结果将在更新中发布

结论

这里发生了什么?

Liberty 使用的 JVM 的 IBM 实现是否滥用了此代码,还是有其他原因?

根据代码和演练,没有办法HttpUriRequest.getURI()返回null.

重大更新

根据 INVESTIGATION 中的第 5 步,我httpclient使用来自全球发行版的源代码定制了调试日志记录。将 JAR 添加到我的项目后,它开始工作。我回滚了我的更改,从未修改的源代码重建了 JAR,将其添加到我的项目中,然后应用程序开始工作。

我使用全球分布httpclient-4.5.12.jar 的 My application failed 再次重新部署。

同样,我没有对代码进行任何更改;我httpclient-4.5.12-sources.jar使用 .Eclipse 并在 Eclipse 中编译它并使用我新命名的 JAR 重新部署,httpclient-4.5.12.joshdm.jar. 它有效。

我使用 JAD 反编译了两个 JAR 来检查代码。差异很小,仅在标签中,这意味着编译器不同。我比较了两个 JAR 的 MANIFEST.MF;Build-Jdk 条目不同。我使用 Jdk 1.8.0_191 编译。全局的使用 Jdk 1.8.0_1 8 1 编译。

我已经向 IBM 报告了这个奇怪的差异,提供了编译后的 JAR 和源 JAR,我正在等待回复为什么我的 JVM 可以与他们的 JVM 一起工作,以及为什么全局的 JAR 不能。我现在 99% 确定这是 IBM JVM 或服务器配置问题,与部署的应用程序无关。

更新#2

添加以下配置并回滚到全局 JAR 工作(也适用于重新编译的 JAR)。

-Xshareclasses:none- 禁用共享类缓存和 AOT 编译。

-Xnojit- 禁用 JIT 编译

在 Liberty 上禁用共享类缓存、禁用 AOT 编译和禁用 JIT 编译似乎已经解决了这个问题。一旦我从 IBM 收到为什么需要上述设置,我会写一个实际的答案。

0 投票
1 回答
600 浏览

db2 - 从 java 程序中读取 MVS DataSet

我正在尝试访问一个名为 XYZ 的数据集;我的代码是:

我得到这个例外:

有什么建议吗?谢谢。

0 投票
1 回答
383 浏览

websphere - IBM JVM WebSphere Application Server -XX:+UseG1GC 的作用是什么?-Xgcpolicy:gencon 是否取代?

根据 IBM 链接(https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/openj9/xgcpolicy/index.html),可以通过 -Xgcpolicy 设置来指定 gc 策略。默认 gcpolicy 是 gencon (-Xgcpolicy:gencon)。WAS 是 9.0,JVM 是 IBM J9(Java 版本 1.8)。接下来,从 IBM 的以下链接看来,使用标志 -XX 也可以设置 gc 算法,就像在其他 JVM 中一样。例如:-XX:+UseG1GC 可以工作。 https://www.ibm.com/support/knowledgecenter/en/SS3KLZ/com.ibm.java.diagnostics.visualizer.doc/verbosegc.html

我的意图是应用像 UseG1GC 这样的 gc 行为。堆大小为 -Xms16G 到 -Xmx20G。所以,我希望首先使用 Garbase 和并发,即 UseG1GC。-Xgcpolicy:gencon 也有点类似,但它会导致“停止世界”。当 gc 运行时,应用程序会暂停。有点困惑的是,即使我设置了 -XX:+UseG1GC,它会遵循并有效 UseG1GC 行为还是遵循 -Xgcpolicy:gencon 的机制?还是 gcpolicy 和 gc 算法是两个不同的东西?