Troubleshooting SAP Mobile Server Performance Issues

Problem: SAP Mobile Server exhibits performance issues.

Explanation: The performance configuration may not be properly tuned to optimize system operation.

Solution: Ensure that all applicable performance-related settings are properly configured.
  • Java heap size – when the garbage collection log indicates high activity and the JVM memory allocation pool heap size remains close to the maximum, you may need to reconfigure the maximum and minimum heap sizes. You can enable garbage collection tracing by setting the "JVM options" property. Set appropriate maximum and minimum heap sizes in the Server Configuration node (Performance Configuration tab) of SAP Control Center. The default minimum heap size is 512MB and the default maximum heap size is 2048MB. See Configuring System Performance Properties.
  • Java thread stack size – if you see a StackOverflowError, you may need to increase the default stack size from 400KB. Set an appropriate Java thread stack size in the Server Configuration node of SAP Control Center. Alternatively, you can also decrease the stack size to save more memory. See Configuring System Performance Properties.
  • Messaging synchronization (MBS) – if there are large numbers of MBS clients and response times or queue counts are high, consider increasing the inbound and outbound messaging queue counts. These numbers control the number of message queues used for incoming and outgoing messages between the messaging-based synchronization application and the server. If you increase either of these values, ensure you also increase the maxThreads property of in the <hostname>_iiop1.properties file, located in SMP_HOME\Servers\UnwiredServer\Repository\Instance\com\sybase\djc\server\SocketListener\.

    View messaging queue statistics in the Monitoring node of SAP Control Center to calculate the appropriate values and enter these in the Server Configuration node of SAP Control Center. See Configuring System Performance Properties.

  • Replication synchronization – if replication synchronization client application performance does not meet the desired level and the CPU or memory settings are not causing this issue, consider increasing the synchronization thread count and cache size for the replication synchronization server. Choose an appropriate synchronization cache size and thread count in the Server Configuration node of SAP Control Center. See Configuring Replication-Based Synchronization Properties.
  • Cache database (CDB) – if the CDB server is slow, consider increasing the CDB thread count to allow for more parallel threads to serve incoming requests from the SAP Mobile Server nodes. See Changing the Cache Database Server Thread Count. Also consider tuning the number of client connections that are saved in the CDB connection pool. Configure this in the 'default' domain by modifying the 'default' data source pool size property in SAP Control Center. Repeat this change on all nodes in the cluster.
  • Data change notification (DCN) listener threads – if there are a large number of concurrent requests and processing times for those requests do not meet requirements, consider increasing the number of DCN listener threads. Set an appropriate number of listener threads in the Server Configuration node of SAP Control Center. See Configuring Communication Port Properties in SAP Control Center for SAP Mobile Platform.
  • Server host memory – if you are running SAP Mobile Server on a host with 4GB of memory, by default, 2GB of memory is allocated to applications, such as SAP Mobile Server. If performance issues persist after you have adjusted the aforementioned settings, consider starting Windows with a "/3GB" switch. See http://technet.microsoft.com/en-us/library/bb124810(EXCHG.65).aspx.
  • Platform connections – for JDBC connections, consider setting the maximum connection pool size to restrict the size of the pool. You can set this value in SAP Control Center. See Data Source Performance Errors.
  • SAP Mobile Platform connection settings to the backend EIS – for JDBC connections to the backend database, you can add options such as maxPoolSize=<no. of pool size> to the connection cache property files, located in SMP_HOME\Servers\UnwiredServer\Repository\Instance\com\sybase\djc\sql\DataSource\*.properties.

For expanded performance tuning details, especially in regards to synchronization performance, see Performance Tuning in System Administration.