我们正在将我们的Oracle Forms 10g应用程序迁移到APEX 4.1。
我们需要在 APEX 中包含一些表单。
我们有一个call_form
从 APEX 区域调用的 PL/SQL 函数(见下文),它只是编写小程序来加载表单,将表单名称作为参数传递。
它可以工作,但它总是重新加载表单服务,每次大约需要10 秒,Oracle 应用服务器表单服务徽标每次都会出现:
对用户来说真的很痛苦……
我认为是因为它每次都重新加载jar文件,所以我在编写applet(cache_option,cache_archive,...)时尝试使用缓存选项来缓存JVM中的文件,但没有成功。
我每次都没有收到小程序安全警告,在java 缓存查看器中我可以看到 4 个 jar 文件frmall.jar、frmwebutil.jar、FDialogPJC.jar和jacob.jar。
这是调用表单时Java控制台的内容,然后重新加载页面,它似乎加载了webutil 2次:
RegisterWebUtil - Loading WebUtil Version 10.1.2.3
proxyHost=null
proxyPort=0
connectMode=HTTP, native.
Forms Applet version is : 10.1.2.3
RegisterWebUtil - Loading WebUtil Version 10.1.2.3
proxyHost=null
proxyPort=0
connectMode=HTTP, native.
Forms Applet version is : 10.1.2.3
我的 JVM 是 1.6.0_31。
call_form
程序:
procedure call_form(in_form_name in varchar2) is
begin
htp.p('
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="http://javadl-esd.sun.com/update/1.6.0/jinstall-6-windows-i586.cab" width="0" height="0" hspace="0" vspace="0">
<param name="type" value="application/x-java-applet">
<param name="codebase" value="http://myhost.ch/forms/java">
<param name="code" value="oracle.forms.webutil.common.RegisterWebUtil">
<param name="cache_option" value="Plugin">
<param name="cache_archive" value="frmwebutil.jar,jacob.jar">
<param name="cache_version" value="">
<comment>
<embed src="" pluginspage="https://java.sun.com/javase/downloads/index.jsp"
type="application/x-java-applet"
java_codebase="http://myhost.ch/forms/java"
java_code="oracle.forms.webutil.common.RegisterWebUtil"
cache_option="Plugin"
cache_archive="frmwebutil.jar,jacob.jar"
cache_version=""
width="0"
height="0"
hspace="0"
vspace="0">
</embed>
<noembed>Registration applet definition</noembed>
</comment>
</object>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="http://javadl-esd.sun.com/update/1.6.0/jinstall-6-windows-i586.cab" width="1015" height="745" hspace="0" vspace="0">
<param name="type" value="application/x-java-applet">
<param name="codebase" value="http://myhost.ch/forms/java">
<param name="code" value="oracle.forms.engine.Main">
<param name="cache_option" value="Plugin">
<param name="cache_archive" value="frmall.jar,FDialogPJC.jar,frmwebutil.jar,jacob.jar">
<param name="cache_version" value="">
<param name="serverURL" value="http://myhost.ch/forms/lservlet?ifcfs=http://myhost.ch/forms/frmservlet?config=myconfig&form='||in_form_name||'.fmx&acceptLanguage=fr">
<param name="networkRetries" value="0">
<param name="serverArgs" value="escapeParams=true module='||in_form_name||'.fmx userid= sso_userid=%20 sso_formsid=%25OID_FORMSID%25 sso_subDN= sso_usrDN= debug=no host= port= buffer_records=no debug_messages=no array=no obr=no query_only=no quiet=yes render=no record= tracegroup= log= term=">
<param name="separateFrame" value="False">
<param name="splashScreen" value="">
<param name="background" value="">
<param name="lookAndFeel" value="Oracle">
<param name="colorScheme" value="teal">
<param name="serverApp" value="default">
<param name="logo" value="">
<param name="imageBase" value="DocumentBase">
<param name="formsMessageListener" value="">
<param name="recordFileName" value="">
<param name="EndUserMonitoringEnabled" value="">
<param name="EndUserMonitoringURL" value="">
<param name="heartBeat" value="">
<param name="WebUtilLogging" value="off">
<param name="WebUtilLoggingDetail" value="normal">
<param name="WebUtilErrorMode" value="Alert">
<param name="WebUtilDispatchMonitorInterval" value="5">
<param name="WebUtilTrustInternal" value="true">
<param name="WebUtilMaxTransferSize" value="16384">
<comment>
<embed src="" pluginspage="https://java.sun.com/javase/downloads/index.jsp"
type="application/x-java-applet"
java_codebase="http://myhost.ch/forms/java"
java_code="oracle.forms.engine.Main"
cache_option="Plugin"
cache_archive="frmall.jar,FDialogPJC.jar,frmwebutil.jar,jacob.jar"
cache_version=""
width="1015"
height="745"
hspace="0"
vspace=""
serverURL="http://myhost.ch/forms/lservlet?ifcfs=http://myhost.ch/forms/frmservlet?config=myconfig&form='||in_form_name||'.fmx&acceptLanguage=fr"
networkRetries="0"
serverArgs="escapeParams=true module='||in_form_name||'.fmx userid= sso_userid=%20 sso_formsid=%25OID_FORMSID%25 sso_subDN= sso_usrDN= debug=no host= port= buffer_records=no debug_messages=no array=no obr=no query_only=no quiet=yes render=no record= tracegroup= log= term="
separateFrame="False"
splashScreen=""
background=""
lookAndFeel="Oracle"
colorScheme="teal"
serverApp="default"
logo=""
imageBase="DocumentBase"
recordFileName=""
EndUserMonitoringEnabled=""
EndUserMonitoringURL=""
heartBeat=""
WebUtilLogging="off"
WebUtilLoggingDetail="normal"
WebUtilErrormode="Alert"
WebUtilDispatchMonitorInterval="5"
WebUtilTrustInternal="true"
WebUtilMaxTransferSize="16384">
</embed>
<noembed>Forms applet definition</noembed>
</comment>
</object>
');
end;
您对我如何防止这种情况有任何想法吗?还是您认为有更好的方法将 Oracle Forms 包含到 APEX 中?
任何帮助将非常感激。
谢谢。