首页  ·  知识 ·  生产制造
用SUN官方的JVM代替Jinitiator访问EBS
马雅斌   http://blog.chinaunix.net/u2/82877/showart_1970724.html    编辑:德仔   图片来源:网络
经过查找资料和多次测试,终于抛弃了Jinitiator,用上了SUN官方的JVM。 在查找资料的过程中,发现好多人也在问这个问题。有的人问如何
经过查找资料和多次测试,终于抛弃了Jinitiator,用上了SUN官方的JVM。
在查找资料的过程中,发现好多人也在问这个问题。有的人问如何在Linux客户端下访问EBS;还有的人问如何在Firefox下访问EBS;还有人问如何用Sun官方的JVM代替Jinitiator。

其实这三个问题,最后都可以归结到第三个问题,如何用Sun官方的JVM代替Jinitiator。 解决了第三个问题,其他2个基本上都能解决掉。

那么就让我们重点来看第三个问题。Sun官方的JVM我们大家都知道,不管是安装JDK还是JRE,都会安装它,而且会自动安装浏览器插件,让你可以在浏览器里访问Applet(EBS的Form Applica就是基于Applet的)。
那么Jinitiator是什么?这个是Oracle公司的JVM,它的功能和Sun官方的JVM功能完全一样。那么为什么Oracle非要自己做一个JVM呢,让我们回到当初Oracle开发EBS的时间。
当初这么设计有2方面原因:
1. 当时Sun的JVM的版本是1.3,性能还不完善。
2. 当时Sun的JVM版本之间的兼容性不好。有的客户用的1.3,还有的用的1.2,1.1,经常会出现兼容性问题。
为了把系统性能调优,以及满足兼容性问题,Oracle在SUN的JVM的基础上,做了优化,然后推出了自己的JVM,就是Jinitiator。

从Oracle公司的角度来考虑,这样做是好的。但是对客户来说并不一定是个好消息。
比如说,把浏览器绑定Jinitiator后,当然客户访问EBS没有任何问题了。但是客户在访问其他软件的时候可能出现问题,因为其他公司的软件不一定识别Jinitiator啊。
而且Jinitiator只有Windows安装版,所以*unix客户肯定不能使用Jinitiator。
其实Oracle在设计EBS的时候,已经给了客户选择,可以使用Jinitiator,也可以使用Sun官方的JVM,后面我们可以介绍怎么做。

返回到现在,让我们考虑Jinitiator是否还有存在的必要。现在Sun的JVM的兼容性以及性能都已经不再是大家诟病的问题了。这不是我个人的结论,连Oracle自己都承认。“从2009年7月份起,Oracle将不再继续开发和支持Jinitiator”。也就是说,Oracle EBS将只支持Sun官方的JVM,大家不用为“在Jinitiator和Sun官方JVM之间的切换”这个问题而烦恼了。
当然我相信,不用等到2009年,即使现在,可能有的版本的EBS已经默认为Sun的JVM,而不是Jinitiator了。

当然还有好多客户在使用旧版本的EBS,以及一些人为了学习和测试目的也在使用旧的EBS。下面就介绍一下,如何让这些旧版本也默认为Sun的JVM。

我的测试环境:
服务器操作系统: Redhat Linux
EBS版本:11.5.10.2
Form server: 6i
客户端包括Linux,Windows,IE,Firefox。

说明:
1. 如果你的EBS版本和我的测试环境不同,仅供参考。也希望你测试成功后,把不同的地方分享出来。
2. 到目前为止,Oracle经过认证的最新的JVM版本是1.5.0_13。这和实际测试结果大致是相同的,JDK1.5在Windows,Linux,IE,Firefox上都是好用的。JDK6在IE下是好用的。
   JDK6在Firefox下是不好用的,在Windows下访问from时,会一直连接,没有结果;在Linux下,访问Form时,会Crash退出。
   所以请大家使用JDK1.5或者叫JDK5.0系列的JVM。
3. 只要配置了EBS默认使用Sun的JVM,在Linux下就应该可以访问了。
   你可能还会遇到一个问题,已经安装了JDK或者JRE,但是Firefox并没有加载这个java插件,需要把Jre里的插件链接到Firefox的插件库。
   比如,
   #cd /usr/lib/firefox-3.0.3/plugins
   #ln -s /usr/local/j2re1.4.2_04/plugin/i386/ns610-gcc32/libjavaplugin_oji.so
   这样做完后,打开firefox, 在URL栏输入‘about:plugins’,回车,然后你就可以看到Java插件的信息了。

解决办法:
首先要介绍一下,在使用Sun的官方的JVM时,有两种方式,一种叫static versioning;另一种叫dynamic versioning。
他们的区别请参考网址,http://java.sun.com/products/plugin/versions.html。
我使用的是dynamic versioning。这样做的好处就是,客户端的JVM不需要限制在特定的版本,只要比服务器的最低要求高的版本就可以。
还有就是这两种方式最主要的区别就是Classid和MimeType的参数不同。


我在网上查找资料时,发现了两种可行的办法,但是我只成功了一种。
第一种,修改forms60/server/Formsweb.cfg配置文件。
具体的修改办法请参考链接,http://www.oratransplant.nl/2005/06/16/how-to-configure-forms-to-use-sun-jpi
这篇文章写的非常详细。

它配置的是在访问Form Application时使用的JVM。但是,,,这种办法没有成功,每次访问时,仍然要求安装Jinitiator。
后来分析了一下,不是说这种方法是错误的,只是因为在它之前,还有一项配置先它生效了。这就是,

第二种,修改$COMMON_TOP/html/bin/appsweb_<SID>_<HOST>.cfg配置文件。
其中<SID>和<HOST>要修改成自己系统相应的名称,比如,我的<SID>是PROD,<HOST>是ebs,那么就是appsweb_PROD_ebs.cfg。

这种办法要修改以下几个参数:

IE50=native
plugin=jdk

以上两项配置了使用Sun官方的JVM,而不是Jinitiator。下面配置了怎么使用Sun的JVM,也是非常重要的。

sun_plugin_mimetype=application/x-java-applet;version=1.4            ---指定了最低的JVM版本是1.4。
sun_plugin_classid=clsid:8AD9C840-044E-11D1-B3E9-00805F499D93        ---指定了dynamic versioning方式,只要比上面提到的版本高就行。
sun_plugin_url=http://java.sun.com/j2se/1.5.0/download.html          ---如果现有的版本比最低要求低,就到这个链接下载安装
sun_plugin_version= 1.5.0                                            ---这个没有实际意义,用来显示版本号(我的理解)。
sun_plugin_legacy_lifecycle=false                                    ---如果设置了true,JVM会缓存访问过的Applet,这样如果再切换回来的话,会提高访问速度(但是会占系统资源,建议为False。因为如果有人到处乱点的话,有可能把系统资源耗尽)。

好了,以上是我的总结,欢迎大家指正及补充。

[/解决方案]




有几个问题,大家可能关注的很少,我一直搞不清楚,现在提出来,看哪位大侠帮我解答一下。

在使用Oracle ERP的时候,大家都按着提示安装了Jinitiator,就是IE里的那个插件,如果不安装的话,你就没办法访问Form表单。下面是我的安装经历和问题。

第一次安装后,启动不成功,只要一打开链接,IE就报错退出;换成Firefox后,也是不行,但是没退出,只是个空链接。
后来高义明说让我检查一下IE的插件,把没有的都禁用了。
我试了一下,确实成功了,但是因为我的IE里的插件特别多,到现在也不知道到底是和哪个插件冲突(迅雷的可能性最大)。
如果谁遇到这个问题,可以打开IE的“Tool”--“Manage Add-ons”, 禁用某些插件试一下。

因为这个遭遇,我就特别关注了一下Jinititor,就到安装目录看了一下,发现版本是1.3.1.21。读了说明后,吓了一跳,这个Jinitiator是基于J2se1.3的。
我的机器安装了J2se5.0,并且IE已经安装了Java虚拟机的插件。为了使用Oracle EBS,我不得不安装另外的一个Java虚拟机插件,而且这个插件的版本要比我已经安装了的低很多。
所以我的第一个问题就是,为什么Oracle EBS非要安装Jinitiator?怎么配置才能让Oracle EBS使用我的高版本的Java虚拟机插件?


 
本文作者:马雅斌 来源: http://blog.chinaunix.net/u2/82877/showart_1970724.html
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读