Oracle® Application Server Wireless Administrator's Guide
10g Release 2 (10.1.2) B13820-02 |
|
Previous |
Next |
This appendix describes common problems that you might encounter when using Oracle Application Server Wireless and explains how to solve them. It contains the following topics:
Section A.3, "Viewing UTF-8 Pages in Localized Languages with Netscape 4.7 or Earlier"
Section A.4, "Oracle Workflow and Oracle Application Server Wireless"
Section A.5, "Re-Registering the OracleAS Wireless Portal Services URL Reference in OracleAS Portal"
Section A.7, "Configuring OracleAS Wireless for Load-Balancing"
This section describes common problems and solutions. It contains the following topics:
Deploying XHTML+XForms, XHTML MP, and SimpleResult Documents
Processes Cannot Start Because of Incorrect Database Connection Configuration
This section describes the following:
Problem 1: OracleAS Wireless Does Not Transform XHTML +XFORM Documents Saved as .xhtml
Problem 2: OracleAS Wireless Does Not Transform OracleAS Wireless Documents Generated Using PL/SQL
Problem 1: OracleAS Wireless Does Not Transform XHTML +XFORM Documents Saved as .xhtml
I am trying to deploy an XHTML+XFORMs document on OracleAS Wireless. If I deploy the document as Mydoc.xhtml, OracleAS Wireless fetches this document but does not transform it. However, OracleAS Wireless transforms this document if I save Mydoc.xhtml
as Mydoc.jsp
.
Solution 1
Ensure that you set the appropriate MIME TYPE for the Web server. For example, for OC4J as a standalone Web server, you must configure
ORACLE_HOME\wireless\j2ee\config\mime.types
:
application/vnd.oracle.xhtml+xforms xhtml
The Web server assigns the correct MIME TYPE (vnd.oracle.xhtml+xforms
) to files with the .xhtml
extension.
Note: If you do the above mapping in the mime.types file, then all files with the.xhtml extension are served with the application/vnd.oracle.xhtml+xforms mime type. If you have other .xhtml documents in the application, choose a different extension (.xforms ), for XHTML+XForms documents.
|
Problem 2: OracleAS Wireless Does Not Transform OracleAS Wireless Documents Generated Using PL/SQL
I am using PL/SQL to generate my OracleAS Wireless documents, but the server does not transform these documents. What should I do?
Solution 2
Verify that you set the correct MIME TYPE for the generated documents. For SimpleResult documents, you must set the MIME type as text/vnd.oracle.mobilexml
. Example A-1 describes how to set the MIME TYPE from PL/SQL using the owa_util
package.
Example A-1 Setting the MIME TYPE Using owa_util
owa_util.mime_header ('text/vnd.oracle.mobilexml', false, 'UTF-8') owa_util.http_header_close; htp.print ( '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' ); htp.print ( '<!DOCTYPE SimpleResult PUBLIC "-//ORACLE//DTD SimpleResult 1.1//EN" "http://xmlns.oracle.com/ias/dtds/SimpleResult_1_1_0.dtd">' ); htp.print ( '<SimpleResult>' ); htp.print ( .....); htp.print ( .....); htp.print ( '</SimpleResult>' );
Problem 3: Error When Generating XHTML with JSP
I get the following error regarding my XHTML documents generated using JSP technology:
oracle.panama.adapter.AdapterException: <Line 5, Column 6>: XML-0109: (Fatal Error) PI with the name 'xml' can occur only in the beginning of the document
How do I fix this?
Solution 3
Place the <?xml...?> processing instruction on the first line of the JSP (before the page directive) as illustrated in Example A-2.
Example A-2 Entering the Processing Instructions in a JSP
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <%@ page contentType="text/vnd.oracle.mobilexml; charset=UTF-8"%>
Problem 4: Setting the MIME Type
How do I set the MIME TYPE in the output in Oracle Application Server Wireless Release 904 (since it is more stringent than in Release 902)?
Solution
For SimpleResult
, the content type must be set to text/vnd.oracle.mobilexml
and the document must have a DOCTYPE
declaration such as
<!DOCTYPE SimpleResult PUBIC "-//ORACLE//DTD SimpleResult 1.1//EN" "http://xmlns.oracle.com/ias/dtds/SimpleResult_1_1_0.dtd">
Problem 5: Header Information in PL/SQL Packages
My JSPs, which work, have the header:
<?xml version = "1.0" encoding = "UTF-8" standalone="yes" ?> <%@ page contentType="text/vnd.oracle.mobilexml; charset=UTF-8" %>
However, if I use a PL/SQL package rather than a JSP, how should I code this into the package body?
Solution 5
Because you are not using JSPs, there is no JSP engine to interpret and execute the <jsp:...>
tags (the PL/SQL HTP package does not have such functionality). In fact, when you use a JSP page directive to set the content type, you are actually signaling the Web server to send a content-type response header back to the client (which, in this case, is the OracleAS Wireless Server). This is in contrast with the <?xml ...?>
prolog and the <!DOCTYPE…>
tag, both of which are part of the response body.
Note: The HTP.PRINT procedure only allows you to add content to the response body, not set response headers. Refer to the HTP package documentation for another procedure (such asHTP.SET_CONTENT_TYPE ) that allows you to set the content type. If no alternative procedure will suffice, then adjust mod_plsql .
|
Setting the MIME Type Using the owa_util.mime_header
Using the owa_util.mime_header generates the correct SimpleResult as a text/vnd.oracle.mobilexml MIME type from PL/SQL:
owa_util.mime_header('text/vnd.oracle.mobilexml', true, 'UTF-8'); owa_util.http_header_close; htp.print ('<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'); htp.print ('<!DOCTYPE SimpleResult PUBLIC "-//ORACLE//DTD SimpleResult 1.1//EN" "http://xmlns.oracle.com/ias/dtds/SimpleResult_1_1_0.dtd">');
Note: Setting true in theowa_util.mime_header
inserts blank line before the line containing To avoid this error, set false in the
|
Problem 6: Errors for Valid XHTML Documents
I get the following error even though the XHTML document is valid:
oracle.panama.adapter.AdapterException: <Line 5, Column 6>: XML-0109: (Fatal Error) PI with the name 'xml' can occur only in the beginning of the document
Solution 6
You must set the content type of the XHTML document. You must put <?xml ...?>
in the first line, as illustrated in Example A-3.
Problem
How do I configure TON (type of number) and NPI (national plan indicator) for SMS from Enterprise Manager?
Solution
You define the TON and NPI configuration parameters when you create the SMPP (Short Message Peer to Peer protocol) driver instance. These parameters are used to configure the SMSC (Short Message Service Center). Because the connection configuration of the (SMPP) driver must concur with the SMSC configuration, you should consult with the SMSC administrator for the correct values for these parameters.
Problem
What are the configuration parameters for the SMPP driver?
Solution
Table A-1 describes a list of the parameters, with some example values set.
Table A-1 Parameters of the SMPP Driver
Parameter | Description | Example Value |
---|---|---|
|
The ID of the account or the short number. |
200 |
|
The host name or IP address of the SMSC server. |
192.168.10.10. |
|
The system ID of the transmitter to the SMPP server. |
oracle |
|
The type of system ID of the transmitter to the SMPP server. |
CERT |
|
The password for the transmitter of the SMSC. |
oracle78 |
|
The number of the SMSC server's listening port for the transmitter. |
5135 |
|
The system ID of the receiver to the SMSC server. |
oracle |
|
The tyoe of system ID of the receiver of the SMPP server. |
CERT |
|
The password for the receiver to the SMSC server. |
oracle78 |
|
The number of the SMSC listening port for the receiver. |
5136 |
|
The default encoding for text messages. |
IA5 |
|
The local port used by the SMPP driver to make the out-going, sending connection. |
|
|
The local port used by the SMPP driver to make an outgoing, receiving connection. |
|
|
The local hostname or IP address of the server that runs the SMPP driver. |
|
|
Type of number of the source address (the account ID). |
00 |
|
Nation Plan Indicator of the source address. |
01 |
|
National Plan Indicator of the destination address. |
00 |
|
Type of number of the destination address. |
00 |
|
The windowing size. |
1 |
|
Whether to use the submit_multi command for sending messages to a group of subscribers (if possible). |
false |
|
Whether to use the message_payload field for sending when the short_message field is okay. |
true |
|
The maximum chunks that a long message can be split into. A negative value means no limitation. |
-1 |
|
The maximum number of characters a chunk can have. |
160 |
|
The interval, in seconds, after which the enquire link is called. This feature is disabled if the interval is less than 0 |
15 |
|
The delay, in seconds, after the sending restarts after the throttling error is received from the SMSC. This feature is disabled if the delay is less than 0. |
30 |
|
The extra error codes that could be returned by the SMSC and requires sending the message again. |
|
|
The time, in seconds, that ESME (Extra Short Message Entity) waits for an enquiry link response before retrying bind to SMSC.This feature is disabled if this parameter or the sms.enquire-link.interval is less than 0 |
30 |
|
The mark to disable a registered delivery flag if the SMSC does not support registered delivery flag functions. |
0xFF |
|
The type of network used to send SMS. |
GSM. |
|
Designates the highest priority allowed for a message. |
0 |
Problem
How do I plug a third-party authenticator into OracleAS Wireless? Can I do this using Oracle SSO (Single Sign-On)?
Solution
You can integrate third-party SSO solutions with Oracle SSO. You should consider integration rather than removing Oracle SSO.
For non-OracleAS Wireless applications, integration is fairly straightforward. See OracleAS Single Sign-On Integration with Third-Party Single Sign-On Products on the Oracle Technology Network (http://www.oracle.com/technology/), specifically for RSA ClearTrust. See RSA Security's documentation regarding SSO at the RSA Security Web site (www.rsasecurity.com).
Problem
When I installed OracleAS Wireless on a Solaris server it worked correctly. Now, however, the oidadmin password expired. I tried to change the password using OID, but when I try to log into OID as the ias_admin user, I get the error Password policy error, your account is locked. What should I do?
Solution
You received the error because of the password expiry time for realms, which expires users' passwords after a certain time. To log in as the ias_admin user, you must increase the password expiry time value as follows:
Open the oidadmin tool on the infrastructure-tier machine. It is in:
ORACLE_HOME/bin
.
Log on as cn=orcladmin
Go to Password Policy for Realms cn=.... inside the Password Policy Manager. Increase the value for the Password Expiry Time field. This field value is represented in seconds, so you must enter a very large number to avoid password problems in the near future.
Click Apply. You can now use orcladmin with the old password.
Problem
I installed OracleAS Wireless without running the OracleAS Wireless configuration assistant. Then I ran wirelessCA.sh
from the command line without problems (it returned success), but not all of the components are installed. How can I fix this?
Solution
Perform the following on the middle tier to configure OracleAS Wireless as a post-installation step:
Using the Oracle Enterprise Manager 10g Application Server Control, first selecting the OracleAS Wireless middle-tier node on the Farm page of the Oracle Enterprise Manager 10g Application Server Control. The Home page appears.
Under System Components, click Configure Component. The Select Component page displays.
Select Wireless from the list.
Click Continue.
Enter the password for the OID super user (orcladmin).
Click Finish.
Wait 10 minutes to deploy OC4J_Wireless and complete the process.
Start the OracleAS Wireless Server from EM by selecting Wireless and clicking Start (under System Components, or use the OPMN command set options).
Problem
I configured a driver to receive messages. When I tried to send messages to the driver, I received a failed to enqueue a received message
error in the log.xml file. Is it a bug?
Solution
This is not a bug. You received the error because the Messaging Server does not know where to dispatch the received message; there must be a registered application listening for incoming messages from the driver. This application must have the addressing information for the driver (such as the incoming e-mail address for an e-mail driver).
Note: If you configure a driver only to see if it can receive messages, you can ignore such errors. |
If you configure the driver so that an application can receive messages received by the driver, you must ensure that the application is running (or at least has run once before). If the application is running (or has run at least once before), it is possible that the application did not register the correct endpoint to the transport layer. An access point (also known as an endpoint) is a pair (a delivery type supported by the driver and the incoming address for which the driver listens). The application should be named the Messenger instance. Call the addEndPoint(EndPoint ep)
method of Messenger to register the endpoint, then call the start()
method of the Messenger instance.If you configured the driver to work with Async Listener, the error indicates that Async Listener is not properly configured, is not running, or has not run at least once after you properly configured it. The Async Listener is a built-in application to listen for received messages. The access points to which the Async Server listens can be configured with System Manager. See Section 3.10.2.1 on how to configure Async Server listening access points.
When configuring the Async Listener access points, make sure you correctly entered the incoming address to which the driver listens. This address must be one of the Async Listener's access points.
Ensure the Async Listener is running (you can check this status of the Async Listener from the Home page of the System Manger. For more information on the Async Listener and other Web-based applications, see Section 3.10).
In the System Logging page (see Section 3.4.2), select the NOTIFY logging level, then start the OC4J_Wireless component in the Home page of the Oracle Enterprise Manager to ensure that the Async Listener is running. If the Async Listener is running, then the log.xml
file should contain a message such as Async Listener started.
Problem
I sent a message but it has not been received. Where is it?
Solution
To best answer this question, the implementation details should be examined, but without going that far, here are possibilities:
Since the Messaging Server depends on each driver to actually deliver the message, the message could be in the external messaging gateway, or still in the Messaging Server persistence store. If it stays in the Messaging Server store, it is not delivered to the external messaging gateway. This could happen because a proper Messaging Server is not up, or that the message is routed to a driver that does not have a configured driver instance. In this case, the sending status is: The message was accepted.
If the message has been delivered to the external messaging gateway, then the status message The message has been delivered to the messaging gateway successfully appears after the message is delivered to the external messaging gateway. Check the external messaging gateway for the status of the message.
Problem
I use an HTTP proxy to connect to t he Internet. How do I set the proxy in XMS?
Solution
An XMS client connects to the XMS Web service through the HTTP protocol. As such, a proxy must be set if one is needed to communicate over HTTP from the host that the XMS client runs on to the host the XMS Web service runs on. Set the proxy programmatically using the XMS API as follows:
XMSSender.setProxy(host,port)
or
XMSSimpleSender.setProxy(host,port)
Problem
Why do I receive a No response from gateway message when I send a message using the XMS API to a messaging gateway.
Solution
You received this message either because the messaging gateway is not running or because it cannot be reached. To reach the messaging gateway from the client machine:
Use the command: telnet <gateway URL> <port>
to check if the client machine can contact the messaging gateway. For example, enter the following command:
telnet messenger.oracle.com 80
If the Telnet hangs, it is likely that the outgoing network traffic is blocked by a firewall.
Otherwise, use the following command in the Telnet window:
GET /xms/webservices <Enter <Enter
You should receive a short reply from the gateway such as:
SOAP Server
Sorry, I don't speak via HTTP GET- you have to use HTTP POST to talk to me. (The actual replies may vary.) If the client machine requires a proxy to access the Internet, be sure to set the proxy settings correctly.
Problem
In my country, I must add a 00 or 011 prefix before the country code when I make international long distance calls. Must I do the same when I am sending out SMS or MMS?
Solution
No. Do not add those prefixes. You need only provide the country code, and cell phone number with area code (if any). However, note that you must provide the prefix for voice notifications.
Problem
I am getting the exception: Bad username or password when I contact the messaging gateway. What is wrong?
Solution
Possible reasons include:
The password is not correct.
The username does not exist on that gateway.
The user is not enabled.
The user does not have quota available.
Verify that the user name and password are valid. If they are valid and this error occurs when accessing the Oracle-hosted messaging instance (http://messenger.oracle.com/xms/webservices
), contact mobilesupport_ww@oracle.com
to determine the exact problem.
Problem
I received the message: Only sender who is a registered user is allowed to check the message status when I check message status using the getStatus()
method in the XMS API. What is wrong?
Solution
Possible reasons include:
The user name is not registered on that gateway. Some gateways allow anonymous users to access free trials before registering. They can send out some messages, but they may not check the sending status of those messages.
The user is not the sender of the message.
Problem
I cannot send a message using the code:
AddressData toAddress = new AddressData("a.user@oracle.com", "email"); Packet packet = new Packet(); packet.addRecipient(toAddress);
I notice that the workOrders
array returned by the sender.sendMsg()
method is empty. What should I do?
Solution
The AddressData
class should not be constructed directly (it is declared public for technical reasons, but should not be constructed). Although the JavaDoc explicitly notes that you should not construct this class, some users do anyway. Rather than construct the AddressData class
, use the AddressDataFactory instead (as illustrated in Example A-4).
Problem
I cannot get delivery status callback from the messaging gateway. What should I do?
Solution
Check the following:
Is the Status Listener set?
The Status Listener must be set before sending out the message. In Example A-5, the client requests that the messaging gateway sends a status update to http://my-pc.foo.bar:3900
. The MyStatusListener
class is notified when new a status arrives.
Example A-5 Client Requesting a Status Update
MyStatusListener myListener = new MyStatusListener(); xmsSender.setStatusListener(myListener, "my-pc.foo.bar", 3900);
Is the tracking flag set?
The tracking flag must be explicitly set to get callback. For example:
MessageInfo mInfo = new MessageInfo(); mInfo.setTracking(MessageInfo.TIGHT_FULL_TRACK); pkt.setMessageInfo(mInfo);
Can the client machine be reached by messaging gateway?
The messaging gateway server must be able to reach the specified host name. Firewalls must be configured to allow HTTP requests from messaging gateway. The client machine may be placed in DMZ if the gateway is on the Internet.
Problem
The OC4J_Wireless instance became slow or non-responsive after I deployed my applications. How can I address the problem?
Solution
The built-in applications in the OC4J_Wireless container are tuned to support a large number of concurrent requests. However, custom applications may introduce slowdowns and cause poor performance. Custom applications include HTTP adapter services as well as custom implementations of hook interfaces (such as folder renderer, authentication, authorization, and pre- and post- processor).You can identify performance bottlenecks in the OC4J_Wireless container by analyzing the thread dumps generated while the system is under stress tests. On UNIX and LINUX operating systems, you can send SIGQUIT
, using the command (kill -3 PID)
to the OC4J_Wireless process to generate the thread dumps in the standard output. The standard output stream for OC4J_Wireless is piped to the log file in the ORACLE_HOME/opmn/logs
directory.You must identify the PID (process ID) of the OC4J_Wireless process. The process ID can be identified in the output of the UNIX command:/usr/ucb/ps -auxww | grep OC4J_Wireless
.
Take two or more thread dumps at 30 second intervals while running stress test scenarios. Design test scenarios so that thread dumps will capture the snapshots of the applications at several stages of their request processing life cycles. If many threads are waiting at the same location in the request processing life cycle, that location constitutes a bottleneck in the applications. This may be due to several factors; here are two common ones:
Resource contention (such as contention for JDBC connections)—if the problem is due to resource contention, increase the number of resources, but first make sure that there are no resource leaks in the application. JDBC connection leaks are a common cause of resource contention problems.
Sizes of critical sections—putting time-consuming operations inside the critical sections. Reduce the size of critical sections to reduce synchronization among threads. In many applications, it is fairly easy to identify the segments of the critical sections that can be safely moved outside the critical sections. Tune the applications to reduce the number of threads held up. You may have to repeat several iterations of tuning (analyze thread dumps, modify code, restart OC4J_Wireless and test scenarios, and dump threads) until major bottlenecks are eliminated. You should see a noticeable improvement in the performance of the applications each time you eliminate a major bottleneck.
Problem
I need additional information about the Oracle Sensor Edge Server. Where can I find more information and access the downloads? Is there a Web site specific to the Oracle Sensor Edge Server?
Solution
Oracle Technology Network (http://www.oracle.com/technology/) provides the lastest filters, drivers, and the Edge Development Kit for developing extensions to the Oracle Sensor Edge Server, as well as information and tutorials.
Problem
An intermittent problem has been reported in which the Microsoft Internet Explorer 6.x running on the Microsoft Windows XP operating system crashes while a user is using the Wireless Tools. The problem typically occurs on resource-limited servers.
Solution
The problem has not been reported when Netscape or Mozilla browsers are used, so a solution to the problem is to use one of these browsers.
Problem
When I try to display non-ASCII characters on my device, I sometimes get unreadable characters. How can I display non-ASCII characters?
Solution
There may be several reasons for this problem. Verify the following:
Make sure that the original content (the XHTML or Mobile XML document) contains the correct characters. Very often editors (such as vi, Notepad, and others) corrupt the file content if it contains non-ASCII characters. To make sure that the original content is correct, try to download the content using a PC browser, and verify that the non-ASCII characters are correct. It may be best to use JSPs or Servlets for the content and escape the non-ASCII characters using the Java \uxxxx
syntax, where xxxx
is the appropriate hexadecimal value of the character.
For more details about Unicode Escapes, refer to the Unicode Escapes of the Java Language Specification at:
Make sure that the HTTP response contains the correct HTTP headers; specifically, make sure that the Content-Type header contains the correct encoding in the charset. By default, the HTTP protocol assumes that the content is encoded using ISO-8859-1 encoding. It is best to use JSPs or Servlets for the content. It is best to use JSPs or Servlets for the content and include the lines described in Example A-6 within the JSP.
Example A-6 Charset Encoding in the Content-Type HTTP Header
<?xml version = "1.0" encoding = "UTF-8" standalone="yes" ?> <%@ page contentType="text/vnd.oracle.mobilexml; charset=UTF-8" %> <% request.setCharacterEncoding("UTF-8"); %>
In this case the content is MobileXML but the same applies to XHTML. Example A-7 illustrates simple MobileXML:
Example A-7 MobileXML
MobileXML <?xml version = "1.0" encoding = "UTF-8" standalone="yes" ?> <!DOCTYPE SimpleResult PUBLIC "-//ORACLE//DTD SimpleResult 1.1.0//EN" "http://xmlns.oracle.com/ias/dtds/SimpleResult_1_1_0.dtd"> <%--======================================================= | Copyright (c) 1999-2004 Oracle Corporation, Redwood Shores, CA, USA | All rights reserved. +=======================================================--%> <%@ page contentType="text/vnd.oracle.mobilexml; charset=UTF-8" %> <%@ page language="java" %> <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> <% request.setCharacterEncoding("UTF-8"); %> <%-- Prevent Page Caching --%> <% response.setHeader("Cache-Control", "no-store"); // HTTP 1.1 response.setHeader("Pragma", "no-cache"); // HTTP 1.0 response.setHeader("Expires", "0"); // prevents caching at the proxy server %> <% Date date = new Date(); DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); String time = df.format(date); %> <SimpleResult> <SimpleContainer> <SimpleText> <SimpleTitle>OracleAS Wireless</SimpleTitle> <SimpleTextItem>Hello World!</SimpleTextItem> <SimpleTextItem><%=time%></SimpleTextItem> </SimpleText> </SimpleContainer> </SimpleResult>
If you cannot ensure that the correct Content-Type HTTP header is sent by the content source, then you can configure the OracleAS Wireless server to always use a predefined character encoding for this service. To do this, you must set a value for the INPUT_ENCODING
input parameter of the service. The disadvantage of this approach is that the character encoding is hard-coded in the OracleAS Wireless Server and the content source cannot change it. In addition, this parameter is only available in the device portal, not in the Multi-Channel Server.
Make sure that the Accepted Character Encodings
attribute of the Device object contains the correct character encoding. The OracleAS Wireless attempts to get the character encoding of the device from the Accept-Charset HTTP header, but if that header is not sent by the device, the OracleAS Wireless uses the value of the Accepted Character Encodings
attribute instead.
Problem
I get a Service Error on my device, and the log file seems to indicate that the problem involves the HTTPAdapter. How can I be sure what the problem is, and how can I fix it?
Solution
When you get a Service Error on the device, read the error message in ORACLE_HOME/wireless/log.xml
(Example A-8). When the error is caused in the HTTPAdapter, then you will see an error message such as the one below (the most import parts of the message are italicized and in bold):
The segments of the error message on which you should focus are:
The message in oracle.panama.adapter.AdapterException
which gives general information about what may have gone wrong. Problems are usually related to HTTP protocol problems or XML parser errors.
For HTTP protocol problems, read the HTTP response status
and HTTP response message
. It may be useful to get the URL from the Original URL and Effective URL (those are the absolute URLs to content providers), and try to access them directly from a PC browser. If you use JSP and there is a problem with the JSP, then you will get an HTTP response status 500. When you access the JSP directly from the PC browser then you will see the exact error message.
For an XML parser error, read the Response
. It contains the response from the content provider. Please note that the standard XML entities are escaped. To help you identify the problem, take the response, save at in a separate file and then validate the XML.
Example A-8 The Log.xml Error Message
<MESSAGE> <HEADER> <TSTZ_ORIGINATING>2004-06-08T13:48:52.818-07:00</TSTZ_ORIGINATING> <ORG_ID>ORACLE</ORG_ID> <COMPONENT_ID>WIRELESS</COMPONENT_ID> <MSG_TYPE TYPE="ERROR"></MSG_TYPE> <MSG_LEVEL>1</MSG_LEVEL> <HOST_ID>as-host</HOST_ID> <HOST_NWADDR>111.222.333.444</HOST_NWADDR> <THREAD_ID>AJPRequestHandler-ApplicationServerThread-6</THREAD_ID> <USER_ID>vu_1086727714427_pA39cnouBrKQ45A1</USER_ID> </HEADER> <CORRELATION_DATA> <EXEC_CONTEXT_ID><UNIQUE_ID>1086727732:111.222.333.444:2580:3348:8</UNIQUE_ID> <SEQ>0</SEQ></EXEC_CONTEXT_ID> </CORRELATION_DATA> <PAYLOAD> <MSG_TEXT> null oracle.panama.PanamaException oracle.panama.adapter.AdapterException: The resource at http://as-host:7777/mcs/examples/index.js could not be loaded from content provider.HTTP(S) Error: 404 : Not Found Original URL: "http://as-host:7777/mcs/examples/index.js" Effective URL: "http://as-host:7777/mcs/examples/index.js" Query String: "" Request HTTP headers: x-oracle-device.secure: false x-oracle-user.name: vu_1086727714427_pA39cnouBrKQ45A1 accept-language: en-US x-oracle-device.orientation: landscape accept: application/vnd.oracle.xhtml+xforms, text/vnd.oracle.mobilexml, application/vnd.wap.xhtml+xml, application/xhtml+xml;profile="http://xmlns.oracle.com/ias/dtds/xhtml+xforms", application/xhtml+xml;profile="http://www.wapforum.org/xhtml", application/xhtml+xml, application/xml, text/xml, application/vnd.oracle.xad, */* x-oracle-device.class: pcbrowser x-oracle-user.deviceaddress: 111.222.333.444 user-agent: PTG/2.0 (Oracle9iAS Wireless 9.0.4.0; screen; color8; 1024x800; tables) x-oracle-user.authkind: unauthenticated x-oracle-user.locale: en-US x-oracle-device.maxdocsize: 0 oracle-ecid: 1086727732:111.222.333.444:2580:3348:8,0 x-oracle-orig-accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* x-oracle-orig-user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; (R1 1.3); .NET CLR 1.1.4322) x-oracle-user.deviceid: vu_1086727714427_pA39cnouBrKQ45A1 x-oracle-device.name: HTML40 x-oracle-service.parent.url: /ptg/rm?PAsid=pA39cnouBrKQ45A1&PAgoHome=1 x-oracle-wireless.https.url: https://as-host:4443/ptg/rm x-oracle-home.url: /ptg/rm?PAsid=pA39cnouBrKQ45A1&PAgoHome=1 x-oracle-user.userkind: virtual x-oracle-wireless.http.url: http://as-host:7777/ptg/rm x-oracle-service.home.url: /ptg/rm?PAsid=pA39cnouBrKQ45A1&PAoid=225 HTTP response status: 404 HTTP response message: Not Found Response HTTP headers: x-pad: avoid browser bug date: Tue, 08 Jun 2004 20:48:52 GMT connection: Keep-Alive content-type: text/html content-length: 145 keep-alive: timeout=15, max=100 server: Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server cache-control: private Response: <HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1> 404 Not Found</H1> Resource /mcs/examples/index.js not found on this server</BODY></HTML> at oracle.panama.adapter.http.HttpAdapter.fetchData(HttpAdapter.java:829) at oracle.panama.adapter.http.HttpAdapter.fetchResult(HttpAdapter.java:578) at oracle.panama.adapter.http.HttpAdapter.invoke(HttpAdapter.java:468) at oracle.panama.core.MasterServiceImpl.invokeAdapter(MasterServiceImpl.java:386) at oracle.panama.core.MasterServiceImpl.getPAElementInternal(MasterServiceImpl.java:552) at oracle.panama.core.AliasImpl.getPAElementInternal(AliasImpl.java:344) at oracle.panama.core.ServiceImpl.invoke(ServiceImpl.java:772) at oracle.panama.rt.common.Controller.fetchContent(Controller.java:489) at oracle.panama.rt.common.Controller.fetchContent(Controller.java:509) at oracle.panama.rt.common.AbstractController.processContent(AbstractController.java:690) at oracle.panama.rt.common.AbstractController.doExecute(AbstractController.java:660) at oracle.panama.rt.common.ConnectionImpl.doExecute(ConnectionImpl.java:2043) at oracle.panama.rt.common.ConnectionImpl.execute(ConnectionImpl.java:2140) at oracle.panama.servlet.ParmImpl.doGet(ParmImpl.java:208) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65) at oracle.panama.servlet.MultipartFilter.doFilter(MultipartFilter.java:133) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:604) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534) </MSG_TEXT> </PAYLOAD>
Of the many ways to download SSL root certificates, one of the easiest methods is to use a desktop browser to download the certificate. The following steps use Internet Explorer.
Open Internet Explorer and access the HTTPS Web site containing the SSL root certificate that you want to download.
Figure A-1 Web Page for Downloading SSL Root Certificates
On the page, right-click the mouse and select Properties from the drop-down menu. The Properties window appears (Figure A-2).
Click the Certificates button. The certificate information dialog appears (Figure A-3).
Figure A-3 The Certificates Information Dialog
Click the Certification Path tab. The Certificate Path dialog appears (Figure A-4), listing the certifcates.
Select the first certificate in the Certificate path list.
Click the Details tab. The Details dialog appears (Figure A-5).
Figure A-5 The Details Tab of the Certificate Dialog
Click Copy to File... . The Certificate Export Wizard's Welcome screen appears.
Click Next. The Export File Format dialog appears (Figure A-6).
Select the PKCS #7 (or Base-64) format, then click Next. A dialog appears (Figure A-7) requiring you to enter the file name and path of the file that you want to export.
Specify a file name and location for the file in which certificate information will be saved. Do not specify the file extension; the wizard adds the extension automatically. Be sure to note the location of the file.
Click Next. A Summary page appears with the information that you supplied to the Wizard.
Click Finish. The SSL root certificate is stored in the file.
Select the next certificate in the Certificate path list and repeat Steps 6 through 12. You must download all of the available certificates.
Problem
How do I set up OracleAS Wireless to support HTTPS?
Background
The OracleAS Wireless Server is a middle tier between mobile devices and mobile content. Some devices use the HTTP(S) protocol to communicate with the OracleAS Wireless Server. The OracleAS Wireless Server uses the HTTP(S) protocol to retrieve content from content providers. This means that there are two HTTP(S) hops between a mobile device and mobile content. They both can be configured to use HTTPS. To support HTTPS between a mobile device and the Wireless Server, you must configure the Oracle HTTP server to accept HTTPS requests. See the Oracle HTTP Server Administrator's Guide for more information.
Solution
For content providers, the OracleAS Wireless Server functions as a virtual browser. Like other browsers, the OracleAS Wireless Server uses certificates to positively identify certification authorities and publishers. Before you can use HTTPS to connect to a content provider, you must download the content provider's SSL root certificates (refer to Section A.1.21 for more information). After you download the certificate, copy it to the OracleAS middle-tier machine.
Note: If you have more than one middle tier, then you should copy the file to all middle- tier machines. The file must be in the same location on all of the middle-tier machines. |
Once you have copied the certificate file to the middle-tier machine, you must configure the OracleAS Wireless Server to use that certificate. If you have more than one middle-tier machine, you must configure only the first middle tier; all middle tiers will use the same settings (that is why the certificate file must be in the same location on all middle-tier machines).
To set a certificate for the OracleAS Wireless Server:
From the Oracle Enterprise Manager 10g Application Server Control, select the OracleAS Wireless middle-tier node on the Farm page of the Oracle Enterprise Manager 10g Application Server Control and then click Wireless on the Application Server Home page to access the OracleAS Wireless system management functions described in Chapter 3, "Managing the OracleAS Wireless Server".
Click the Site Administration tab of the OracleAS Wireless Home page. From the General Configuration section, select HTTP, HTTPS Configuration. The HTTP, HTTPS Configuration screen appears.
The SSL section enables you to add a certificate. The OracleAS Wireless Server supports two certificate file formats: Base64 or PKCS#7.
Enter the absolute path to the certificate file. You can set more than one certificate by clicking Add Another Row.
Note: If you cannot copy the SSL certificate files to the same location on all of the middle-tier machines, then you must add the absolute path to the same file on all of the middle-tier machines as a different file. Because you are adding the same file multiple times, you may receive error messages in$ORACLE_HOME/wireless/logs/log.xml stating that the OracleAS Wireless Server could not find some of the certificates. You can ignore this error if you verify that the absolute path is entered correctly for all of the certificate files.
|
Click OK. For more information, see Section 3.9.1.1.3. and Section 10.4.2.
Problem
I am receiving Out of Memory exceptions in my log file; how do I correct this?
Solution
When Out-of-Memory exceptions appear in either the ORACLE_HOME/wireless/logs/log.xml
or the OPMN log files, increase the OC4J_Wireless JVM memory size:
From the Oracle Enterprise Manager 10g Application Server Control, first select an OracleAS Wireless middle-tier node on the Farm page of the Oracle Enterprise Manager 10g Application Server Control and then select the OC4J_Wireless process on the Application Server Home page and then select Administration.
Select Server Properties (located under Instance Properties). The Server Properties page for the OC4J_Wireless Server appears.
In the Java Options field, enter -Xms128 -Xmx256. This sets the JVM Heap Memory to be started at 128MB and could expand to 256MB.
Click Apply.
Shut down and restart OC4J_Wireless; the JVM will be started with the new memory configuration data. For more information on JVM tuning, see Section 13.9.2.
Problem
A user has reported that corrupted user name data displayed in their HDML browser. Are non-ASCII data not supported?
Solution
The problem occurs not because of non-ASCII data, but instead because of invalid user names that contain non-ASCII data. When you access OracleAS Wireless through an HDML browser (such as a Japanese KDDI device), and attempt a login with an invalid account, the non-ASCII data in the user name is displayed as corrupted data or is changed to another string. To fix this, input the correct user account information.
Problem
Why does the Wireless Configuration Assistant hang while I use it against my 64-bit database?
Solution
The account is being locked out because too many incorrect username and password requests have been received. Before recreating a 10g database on the same machine as the original database, (using the same Service Name and SQL*Net port as the original database), shut down any middle tiers that are trying to connect to the database.
If you must keep the middle tier running while creating the new database, then set failed_login attempts to UNLIMITED
as a workaround.
Problem
Is <SimpleMenu>
included in this release?
Solution
The online MXML tag glossary omits the DTMF
attribute, <SimpleMenu>
. This attribute controls whether DTMF keys are assigned automatically to the first nine <SimpleMenuItem> element
s. The DTMF attribute takes a boolean value (true
, false
). The default value is false
.
Problem
I get the following message when starting OracleAS Wireless or the middle tier:
ias-component/process-type/process-set: wireless/performance_server/perfmonitor_1001 Error --> Process (pid=27446) failed to start a managed process after the maximum retry limit Log: /apps/oracle/product/10gmid/opmn/logs/wireless~performance_server~perfmonitor_1001~1
In addition, the associated wireless~performance_server~perfmonitor_1001~1
log file contains the following:
-------- 04/12/29 12:12:20 Start process -------- iAS Wireless System Log Directory is /apps/oracle/product/10gmid/wireless/logs PanamaServer perfmonitor_1001 failed to initialize PanamaServer is exiting ...
The related log entry for $ORACLE_HOME/wireless/logs/log.xml
contains the following:
<MESSAGE> <HEADER> <TSTZ_ORIGINATING>2005-01-03T12:47:26.639-08:00</TSTZ_ORIGINATING> <ORG_ID>ORACLE</ORG_ID> <COMPONENT_ID>WIRELESS</COMPONENT_ID> <MSG_TYPE TYPE="ERROR"></MSG_TYPE> <MSG_LEVEL>1</MSG_LEVEL> <HOST_ID>iaswtest1.us.oracle.com</HOST_ID> <HOST_NWADDR>128.32.25.161</HOST_NWADDR> <PROCESS_ID>null-Thread[main,5,main]</PROCESS_ID> <USER_ID>oracle</USER_ID> </HEADER> <PAYLOAD> <MSG_TEXT>[main] sysmgmt.server.SMAgent.initForPanamaServer(SMAgent.java:637) *Can not find the valid ServerCategory for instance perfmonitor_1001 on host iaswtest1.us.oracle.com it is not configured!*</MSG_TEXT> </PAYLOAD> </MESSAGE>
Solution
This problem occurs when the hostname in the /etc/host
file has been manually changed to iaswtest1.us.oracle.com
, which was not the original hostname used when the middle tier was installed or when OracleAS Wireless was configured. To solve this problem, restore the original etc/host
file.
To change the hostname for the middle tier installation, follow the directions on changing the hostname, domain name, or IP address in the Oracle9i Application Server Administrator's Guide.
Note: When you change the hostname, the OracleAS Wireless SSO Partner URL changes to the new hostname. You must also update SSO with the new OracleAS Wireless SSO Partner URL. |
Problem
The OracleAS Wireless standalone processes and OC4J_Wireless Instance did not start and the log entries in $ORACLE_HOME/wireless/logs/log.xml
associated with SQLEXCEPTIONS and ORA-XXXXX are as follows:
java.sql.SQLException: ORA-12545: [... ...] java.sql.SQLException: ORA-03113: [... ...] java.sql.SQLException: ORA-00600: [... ...] java.sql.SQLException: ORA-12514: [... ...] java.sql.SQLException: ORA-12520: [... ...] ... ...
Solution
Incorrect database connection configuration for OracleAS Wireless can prevent the processes from starting. Verify that the Oracle Application Server infrastructure, including the database server, Oracle Internet Directory (OID) and OC4J_Security are properly configured and running. To do this:
Verify that the database server has been properly configured with the correct initial parameters (such as PROCESSES
) and that the database server machine is not overloaded with the current configuration.
Tip: Increase the number of PROCESSES of the Oracle Database for multiple Oracle Application Server middle-tier instances pointing to the same infrastructure database. |
Verify that OID is running. You can find out the current state of OID using the Oracle Directory Manager tool to connect to the OID Server and browse the OracleAS Wireless associated entities. For more information see Oracle Internet Directory Administrator's Guide.
Problem
The default Wireless device portal URL is http://myhost:myport/ptg/rm. I would like to change it to http://myhost:myport.
Solution
You can use Apache's mod_rewrite to achieve your goal. Add a rule to the ORACLE_HOME/Apache/Apache/conf/httpd.conf file. Add the following two lines to the end of the file.
RewriteEngine On
RewriteRule ^/$ http://myhost:myport/ptg/rm [R,NS,L]
Problem
I get an error when I try to change any user's password (from the webtool).
Solution
The user passwords for all OracleAS components (including the Wireless server) are managed by the Oracle Internet Directory (OID) server. OracleAS administrators can use the OID DAS tool to change user passwords. For security reasons the Wireless server admin tools, by default, are not granted permission to change user passwords. If for convenience you would prefer to be able to change user paswords from the Wireless admin tools, then you must grant permissions to the Wireless component. To do so, set the ORACLE_HOME and JAVA_HOME environment variables and run the following script from the OracleAS middle tier (If you have multiple middle tiers then you must run this script only once from any middle tier):ORACLE_HOME/wireless/bin/assignUserSecurityAdminsPrivilege.sh(.bat)The script takes two parameters: the OID super user DN and the super user password.After you run this script, restart the OID server and the OC4J_Wireless process on the middle tier (If you have multiple middle tiers, then you must restart the OC4J_Wireless process on all middle tiers).
Problem
Everything worked fine but suddenly I cannot log in to the Wireless device portal or admin tools. I didn't change anything. What is wrong?
Solution
The most common reason for this problem is that your user account was locked by the current password policies. Password polices are sets of rules that govern how passwords are used. For example, by default the user passwords expire after 60 days. An account is locked out after 10 login failures. For more details about password policies and how to solve any related issues please see "Password Policies in Oracle Internet Directory" in Oracle Internet Directory Administrator's Guide.
Problem
I don't see any (or some) images on my device.
Solution
The problem probably comes from the authoring language used in your application. Try using MobileXML without image adaptation for your application.
In this case the device will download the images directly from your web application. Very often there is a firewall between the device and your web application which prevents the device from accessing the images. If that is the case then you have two options:
Use image adaptation in your application. Publish all images, used by your application, outside the firewall and use absolute URLs for the images. Please note that you must deploy only the images outside the firewall. The rest of your application, i.e. JSPs, Servelts, etc., can be still inside the firewall.
Use MobileXML with image adaptation or XHTML for your application. The most common reason for this problem is misconfiguration of the Wireless URL parameters and specificaly the URL for the image adaptation server. Please check the value for this parameter and pay attention whether your Wireless server uses site or instance URL parameters.
Check the log files to diagnose problems, as they include information necessary for administrators and support personnel to help you solve problems.
To diagnose a problem with the Oracle Streams dispatcher, ensure that you set the log level to NOTIFY; Oracle Streams-related errors display in the log. For more information on setting the log level, see Section 3.4.2.
Some languages may not display properly if you use Netscape 4.7 or an earlier version. In some cases, characters may display as boxes. To fix this problem, configure the Netscape preferences as follows:
Select Preferences from the drop-down menu. The Preferences dialog appears.
From the Category tree, select Fonts to display the Fonts dialog.
In the Fonts dialog, select Unicode from the For the Encoding drop-down list.
From the Variable Width Font and Fixed Width Font drop-down lists, select the font that supports the preferred language. For example, if you select Chinese as your preferred language, select MS Song to view the page in Chinese.
From the Netscape tool bar, select Edit.
Oracle Workflow can be used with OracleAS Wireless to send notifications to mobile devices. Ensure that the version of Oracle Workflow is 2.6.3 or later. The current version of Oracle Workflow is included in the Oracle Application Server 10g release.
Installing OracleAS Wireless 10g Release 2 (10.1.2.02) against Oracle Application Server Wireless 9.0.2 re-registers the OracleAS Wireless portal service URL and might prevent OracleAS Portal from responding to mobile requests. To avoid this problem, you must re-register the URL as follows:
In Portal Builder, click the Administer tab.
In the Services portlet, click Global Settings.
Click the Mobile tab.
Enter the OracleAS Wireless URL in the OracleAS Wireless 10g Wireless Portal Service URL field.
Click OK.
For more information about configuring mobile settings and updating the Oracle Application Server Wireless service URL in OracleAS Portal, refer to the Oracle Application Server Portal Configuration Guide.
For information on supporting HTTPS between a mobile device and the OracleAS Wireless and Voice Portal (ptg/rm
) as well as between the OracleAS Wireless and Voice Portal and applications, see the following:
After the load-balancer is installed and configured, you must configure the first OracleAS Wireless middle tier to use the site URLs as described in Section 3.9.1.1.2. The site URLS must point to the load balancer. Configure the remaining OracleAS Wireless middle tiers to use the instance URLs as described in Section 3.5.
You can find more solutions on Oracle MetaLink http://metalink.oracle.com. If you do not find a solution for the problem, log a service request.
See Also: Oracle Application Server Release Notes, available on the Oracle Technology Network: http://www.oracle.com/technology/documentation/index.html |