Troubleshooting Documentation Changes

Read about updates, corrections, and clarifications to released documentation for Troubleshooting Sybase Unwired Platform.

Cannot Start Unwired Server

Problem: Server startup problems in a cluster

Explanation: This can occur because the service ports for the nodes in a cluster become set to the same port number, for example 2000. When you log in to Sybase Control Center on each machine in the cluster, the Unwired Server appears to be stopped.

You can find out on which port each Sybase Control Center is running, by using the command netstat -a on each Unwired Server machine.

Solution: Either change the default Sybase Control Center resource to the correct port number, or register a new Sybase Control Center resource with the correct port number, and use this resource to manage the Unwired Servers. See Sybase Control Center for Sybase Unwired Platform online help for information.

Unwired Server Connection Problem

Problem: Host name property of a registered resource is changed but does get updated.

Explanation: If you modify an Unwired Server resource properties (in the Perspective Resources view of Sybase Control Center), the new host name or IP address is not used to establish the Unwired Server connection.

Solution:
  1. Changing the host name property of the Unwired Server.
  2. Authenticate by right-clicking the server and and selecting Authenticate in the Perspective Resources view. This updates resource correctly, so you can open an Unwired Platform management session.

Object Query Fails

Problem: If you do not specify a length for any field you create that uses a string/binary datatype, the length is automatically set to the maximum value of 300 for string, 32,767 for binary, which may cause an error in your query.

Solution: Define a shorter maximum length for any field that uses the string binary datatype.

Uploading Large File Fails

Problem: Upload with large image files fails with SQLException.

Explanation: When you create a new product in an application using the Product MBO and upload a bmp binary image file that is larger than 200KB, the upload fails.

You then see an error log in the application similar to:
com.sybase.jdbc3.jdbc.SybSQLException:SQL 
  Anywhere Error -638: Right truncation of string data

Solution: This issue does not occur when the bmp file is smaller than 150KB. To upload a larger file, define the image attribute to accommodate the size, such as binary(3000000).

Cannot Open a Message-based Device Application in an Emulator

Problem: Cannot open a message-based device application on a Windows emulator or device after installing .NET Compact Framework 3.5.

Solution: After installing .NET Compact Framework 3.5, reset the device or emulator.

To reset the emulator:
  1. Open Device Emulator Manager.
  2. Right-click the device emulator in the list and select Reset.

To reset the device, push the Reset button on the device.

Device Application Deployment Fails

Problem: Device application deployment fails with insufficient space on device.
Solution: This issue occurs primarily on the Windows Mobile emulator, and should not happen on Windows Mobile devices with more memory. Resolve the issue of insufficient space:
  1. Configure the emulator to use external memory.
  2. Use Windows Mobile SDK 6, not 5.
  3. Use .NET 2.0.
  4. On the second screen of the Generate Windows Mobile Application wizard, unselect Perform silent install for emulator option from the advanced options.
  5. Install the application to the external memory.

Deployment Fails With Errors

Problem: DataServices deployment fails when the WHERE clause includes UTF-8.
Explanation: When you create a mobile business object with a SQL SELECT statement that includes a UTF-8 character in the WHERE clause, the package builds successfully and the DataServices metadata is created, but a DataServices deployment error is generated, which includes:
YYYY-MM-DD HH:MM:SS.SSS INFO Thread-227 [Console] [Fatal Error]
deployment_unit-ds.xml:58:52: Invalid byte 2 of 4-byte UTF-8 sequence.

YYYY-MM-DD HH:MM:SS.SSS INFO Thread-227 [Console]
org.xml.sax.SAXParseException: Invalid byte 2 of 4-byte UTF-8 sequence.
...
YYYY-MM-DD HH:MM:SS.SSS INFO Thread-227 [User]
[org.exolab.castor.xml.Marshaller] Marshaller called using one of the
*static* marshal(Object, *) methods. This will ignore any mapping
files as specified. Please consider switching to using Marshaller
instances and calling one of the marshal(*) methods.

Solution: Do not include UTF-8 characters in the WHERE clause.

Device Application Fails

Problem: Device clients receive errors when the page size is not large enough to hold a data row.

Explanation: In an MBO or operation, the sum of the maximum sizes of attributes and parameters of a type other than long binary (with a maximum size greater than 32,767) and long varchar (a string with a maximum length greater than 8191 multibyte characters) should not be greater than 64KB. long binary and long varchar are not included in this 64KB limit.

Solution:
  1. Increase the page size (the maximum size is 16KB) of the database.
  2. If possible, decrease the column sizes of strings that are less than 8191 multibyte characters and binaries that are less than 32,767. Unwired WorkSpace sets the default string max_length to 300, and the default binary size to 32,767.
  3. Otherwise, increase the size of strings that are close to 8191 multibyte characters to greater than 8191 multibyte characters, so that the string is stored as a long varchar in the database. For binary objects that have a size close to 32,767, set their size greater than 32,767 so that long binary is used. This step may impact performance.