Tips for migrating GDC to GBC

When migrating an application from the Genero Desktop Client (GDC) to the Genero Browser Client (GBC), you may encounter issues. Here are some tips that may help.

Configuration issues

The Genero Application Server (GAS) is likely serving several types of applications, which might use different versions of the Genero Business Development Language and different databases. You need to configure the GAS for the environment your application will be running. This is done through the GAS configuration file. If you already have your application configured for GDC-HTTP, you need to enable the rendering for GBC. Example of configuration for a GDC application:

<APPLICATION Id="my-app" Parent="defaultgdc">
  <EXECUTION>
    <PATH>$(res.path.fgldir.demo)</PATH>
    <MODULE>demo.42r</MODULE>
  </EXECUTION>
</APPLICATION>

To allow GBC rendering, replace defaultgdc with defaultgwc, and add the UA_OUTPUT for the public image resources and the GBC customization:

<APPLICATION Id="my-app" Parent="defaultgwc">
  <EXECUTION>
    <PATH>$(res.path.fgldir.demo)</PATH>
    <MODULE>demo.42r</MODULE>
  </EXECUTION>
  <UA_OUTPUT>
    <PUBLIC_IMAGEPATH>$(res.public.resources)</PUBLIC_IMAGEPATH>
    <GBC>gwc-dev</GBC>
  </UA_OUTPUT>
</APPLICATION>

See the Configuring Applications on GAS topic in the Genero Application Server User Guide to configure your execution environment, the database access, and the resource deployment (such as pictures and reports).

If the application fails to start:
  1. Look in the dispatcher log for error messages. See Log files in the Genero Application Server User Guide.
  2. Start a debug console as explained in the What if the application doesn't start? topic in the Genero Application Server User Guide. With a console, the GAS does not launch the application, but instead launches a console with the application environment set up. You can then compare the environment variables to your GDC working environment.
  3. With a console started, you can run commands to check and update your environment variables.
  4. You can also display the application on the GDC by changing the FGLSERVER environment variable to verify that the application runs properly with GDC.

Rendering issues

Graphical widgets that are not rendered properly or are displayed with a different style are considered rendering issues. The source of the rendering issue could be the browser, your code, or some GBC customization. For help with troubleshooting, see Evaluate migration from GDC to GBC.

Application issues

Application issues are behavior related. Most of the time you need to contact your local support center. But you can first check for:

  • Relevant messages in the logs
  • JavaScript errors

If clues are provided in either the logs or in the errors, try to build a simple test program that replicates the issue and contact your local support center.

When you right-click on your application, the browser context menu displays by default. To change this to the Genero context menu, see Display the Genero context menu.

Network issues

When the migration is almost done and you are in the load test phase, you might encounter sporadic disconnections. Carefully read the chapters on GAS installation for your Web server and verify the Web servers and GAS timeouts are compatible. You can also have a look at:

  • Web server log (error/access log)
  • The Genero Application Server logs
  • Network sniffer (like Wireshark)

Web Components

The default path for a web component is appdir/webcomponents, where appdir is the application directory. See the WEB_COMPONENT_DIRECTORY element in your FGLASDIR/etc/as.xcf configuration file:

<WEB_APPLICATION_EXECUTION_COMPONENT Id="cpn.wa.execution.local">
   […]
   <DVM>$(res.dvm.wa)</DVM>
   <WEB_COMPONENT_DIRECTORY>$(application.path)/webcomponents;
                             $(res.path.as)/webcomponents</WEB_COMPONENT_DIRECTORY>
</WEB_APPLICATION_EXECUTION_COMPONENT>

You can change the default web component's location by configuring a WEB_COMPONENT_DIRECTORY element in your application's configuration. In this example, the web component is no longer located in appdir/webcomponents but in appdir/mycomponents:

<APPLICATION Parent="defaultgwc" …>
  <EXECUTION>
    <PATH>/home/myapp</PATH>
    <MODULE>myapp</MODULE>
   <WEB_COMPONENT_DIRECTORY>/home/myapp/mycomponents</WEB_COMPONENT_DIRECTORY>
  </EXECUTION>
</APPLICATION>