General considerations for porting existing applications to 64-bit

Symphony developers have the opportunity to deploy application logic compiled to run natively in 64-bit architectures. Note that if you have an existing application deployed in Symphony on a 32-bit architecture and plan to move it to a 64-bit platform, you should plan this activity carefully. Without proper planning, the resulting ported application could yield unexpected results that may delay rollout of the ported application.

Running in a 64-bit environment without porting

Even if your application is not ported to a 64-bit architecture, it may still be beneficial to run it in a 64-bit environment. This is because some 64-bit operating system implementations allow an application to allocate more memory than if it were run in the 32-bit version of the operating system.

An example is WindowsXP Pro 64, which allows application code to consume up to 4GB of memory as opposed to the 2GB allowed by its 32-bit implementation. Consult the operating system vendor to confirm this detail about your specific 64-bit operating system implementation.

Required changes to the application profile

If any of your compute hosts are 64-bit, you need to add an osType section in the Service sections with the type NTX64 or X86_64, depending on whether you have Windows or Linux hosts. If you do not specify the environment explicitly, then any is selected.

For example:

<Consumer applicationName="MyApplication" consumerId="/consumer"...
            ...
...
<Service name="MyService" description="Description of my service."
...
 <osType name="NTX64" 
startCmd="${SOAM_DEPLOY_DIR}/MyService.exe"
workDir="${SOAM_DEPLOY_DIR}">
 </osType>
 <osType name="X86_64" 
startCmd="${SOAM_DEPLOY_DIR}/MyService"
workDir="${SOAM_DEPLOY_DIR}">
            </osType>
 ...
</Service>
</Profile>

Additional information about 64-bit architectures

For more information about 64-bit architectures and the implication to your application, refer to public white papers that contain pertinent information on this topic. You can access such information from the following sources:

  • Windows

    http://msdn2.microsoft.com/en-us/library/h2k70f3s(VS.80).aspx

  • Linux

    http://www-128.ibm.com/developerworks/linux/library/l-port64.html

  • Java

    http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html

  • Building AMD64 Applications with the Microsoft Platform SDK

    www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/30887.pdf