April 2007
WebUtil is a utility which provides much of the client side functionality taken for granted with a client/server application by providing a set of pre-written Java Beans and an API to perform client side functions such as Host, OLE integration and Text_IO running on the client browser machine.
The laterst release of WebUtil (1.0.6) is a full production release. As a production component it is formally supported through Oracle Support. The 1.0.6 release has been certified with 9.0.4 and 10.1.2.0.2 of Oracle Forms.
You can log a service request and raise a bug through Oracle Support.
The initial 1.0.6 release of Webutil is available for download from OTN and is also delivered as part of the Oracle Developer Suite 10.1.2.0.2. Upgrade and patched versions are now delivered as a component of the Oracle Developer Suite (rather than through OTN).
Patches applied to WebUtil are delivered as part of a complete iDS release. They can be obtained from the latest iDS install. Confirm you are correctly licensed to download and use iDS or Webutil. If you have purchased a third party application that uses WebUtil and you do not hold an iDS licence, then you should consult the vendor for upgrades..
The 1.0.6 release was certified with Oracle Forms 10g (9.0.4). Webutil 1.0.6 is certified with 10.1.2.0.2 and 9.0.4.
Some of the Webutil functionality uses some open source code called Jacob. For legal reasons, this code cannot currently be redistributed and so for development you must download and sign the appropriate Jacob libraries. See the Webutil documentation for more information.
WebUtil uses a standard Forms object library and PLL and so can run on a Windows or UNIX application server.
The architecture for WebUtil is such that it should not matter if the Forms clients are on Windows or not. However, the following points should be noted.
OLE functionality is Windows specific and so the client must be running on a Windows machine.
The C API is a Windows only implementation.
While other WebUtil functions have been tested and are working on UNIX client, Forms itself is still awaiting formal certification on UNIX client. See the client platform statement of direction.
This is documented in the Webutil readme.html file. You need to set LD_ASSUME_KERNEL parameter. See the readme.html for more information.
WebUtil contains two main elements. An Object Library which contains a number of Java beans which perform the client side functionality; and a PL/SQL Library which contains a PL/SQL API to the beans. By attaching the library and subclassing the beans from the object library, the form will then become "WebUtil enabled". The developer can then choose to change many of the Forms built-in calls (e.g. Text_IO) to use a client side version (e.g. Client_Text_IO).
While WebUtil will continue to evolve and be enhanced by Oracle, WebUtil is an extensible framework allowing you, as a developer, the ability to change and customize the standard functionality. WebUtil is built around a core of APIs which offer all the services that the component areas need. If you want to change or extend the functionality of the WebUtil components you can do this by conventional coding methods using the APIs and base classes.
WUC-15 means that the form has been unable to locate the beans which perform the client side functionality. There are a number of issues you need to check
In this case, DIR is not a valid OS command - it is a command understood by the CMD or COMMAND executables. As such, you need to tell WebUtil to run that command processor and pass the required command to it. Typically, this would look like: Client_Host('CMD /C DIR');. The same will apply to any instruction that would normally be handled by the command processor.
You are using the WebUtil_C_API and at the point you are invoking your DLL through the API, the JVM crashes and leaves an error log on the desktop. This may include information such as:
at oracle.forms.webutil.cApi.CFunc.callInt(Native Method)
at oracle.forms.webutil.cApi.CApiFunctions.invokeCApi(CApiFunctions:java:814)
at oracle.forms.webutil.cApi.CApiFunctions.getProperty(CApiFunctions.java:131)
This error is likely to be the fact that you are not using a pointer for parameter which will change. For example:
param2 := WEBUTIL_C_API.add_parameter(args,WEBUTIL_C_API.
C_INT ,WEBUTIL_C_API.PARAM_INOUT ,StringLength);
--This will cause the problem becuase the parmater is defined as INOUT but the type is C_INT
param2 := WEBUTIL_C_API.add_parameter(args,WEBUTIL_C_API.
C_INT_PTR,WEBUTIL_C_API.PARAM_INOUT ,StringLength);
--This will work as the inout parameter is now defined as being a pointer to and integer.
You are using the WebUtil on a UNIX or Linux box and you are noticing a WUT-121 error. When you are debugging you may also notice some control characters appearing at the end of string. This could be down to the fact that the current WebUtil distribution uses DOS format line ends rather than Unix ones - run the dos2unix command to convert it and solve the problem
Webutil downloads install.syslib libraries into the bin directory of the JRE or JVM. The client needs write permission in that particular directory.
When using Oracle Forms Webutil File transfer function, you must take into consideration performance and resources issues. The current implementation is that the size of the Forms application server process will increase in correlation with the size of the file that is being transferred. This, of course, has minimum impact with file sizes of 10s or 100's of KiloBytes. But transfers of 10s or 100s of Megabytes will impact the server side process.
WebUtil provides a trace and diagnostic features. The WebUtilLogging parameter allows you to control the destination of trace information and the amount of information is controlled by the WebUtilLoggingDetail parameter. Form more information see the WebUtil documentation.