Memory Management

This manual is in pilot operation.

When operating fusion_place, it is necessary to distinguish and manage the physical memory capacity and the memory allocated to fusion_place programs separately.

Management of Physical Memory (Server and Client Machines)

Physical memory refers to the actual amount of memory installed in each computer. Please refer to the "System Requirements" to determine the appropriate amount of memory to install.

Windows Virtual Memory System
When the amount of memory used by programs exceeds the amount of physical memory, some of the memory contents are swapped out to disk (this is referred to as virtual memory). When the swapped out data is needed again, it is reloaded back onto the physical memory, and in turn, other memory contents are swapped out to disk.
This mechanism is provided by Windows and is known as the Virtual Memory System.
The data swapping to and from physical memory and disk are referred to as Swap Out and Swap In, respectively.

Frequent swapping can significantly degrade the performance of programs, including fusion_place. Please ensure adequate physical memory to avoid excessive swapping.

Checking Memory Usage

To check how much of the physical memory is being used while fusion_place is running, use Windows’s "Task Manager." For detailed instructions on how to use Task Manager, please see its help documentation.

Pressing CTL+SHIFT+ESC simultaneously will launch the Task Manager.

The following is an example of the Task Manager interface (please select the "Performance" tab. Note that the display items may vary slightly depending on the version of Windows).

Windows Task Manager

The total amount of physical memory installed in the computer is displayed in the "Physical Memory (MB)" section, marked "Total" (in the figure, 1,525MB). Meanwhile, the amount of physical memory currently in use is displayed in the "Memory" section at the top (765MB). The usage rate, which is the latter divided by the former, is displayed at the bottom right (50%).

Management of Memory Allocated to fusion_place Server Programs

Even if there is sufficient physical memory, if it is not allocated to fusion_place, a memory shortage can still occur, leading to "Memory Shortage Errors." If a memory shortage error occurs on a server machine, the program can be forcibly terminated at unexpected times, potentially corrupting data in the database. Along with timely taking database backups, please be aware of avoiding memory shortage errors.

By default at installation, 256M bytes of memory are allocated to the fusion_place server program. While this is generally sufficient, it may be inadequate for applications handling large amounts of data.

It is not necessary for all allocated memory to be present as physical memory. If 256M bytes of memory are allocated to fusion_place but only about half of it is frequently used, the remaining memory content is automatically swapped out to disk. This is due to the workings of the aforementioned Windows Virtual Memory System.

Memory Shortage Error

When there is a memory shortage, the following error message is displayed:

fusion_place Error

Adjusting Memory Allocation

To adjust the memory allocation, launch the Server Management Tool from the Windows Start menu.

  1. Select the following item (program) from the Start Menu:

    All Programs  fusion_place premium (or standard) n.n…​  s1.fusion_place Server Settings

    ⇒ The "fusion_place Server Properties" dialog box will appear.

    fusion_place Server Properties General

  2. Select the "Java" tab in the above dialog box.

    The Java runtime environment settings screen will appear.

    fusion_place Server Properties Java

  3. In the above screen, set the appropriate memory allocation amount in the Maximum memory pool field.

    Also, setting the Initial memory pool to the same value as the maximum memory allocation can sometimes improve the processing speed of fusion_place.
    However, ensure that the initial memory allocation does not exceed the maximum memory allocation.

    Please do not change the settings of other items.

    Once the allocation is set, click the OK button to close the dialog box.
  4. Temporarily stop and restart the server programs.

    The new memory allocation will not be applied unless restarted.

Management of Memory Allocated to fusion_place Client Programs

fusion_place client programs include fusion_place [Manager], [Contributor], [Browser], and [Excel-Link]. Among these, [Excel-Link] does not require user-side memory management as Microsoft Excel automatically adjusts the memory allocation.

When using a 32-bit fusion_place runtime environment on client PCs, [Manager], [Contributor], and [Browser] are each allocated a maximum of about 256M bytes of memory. This is generally sufficient but may be inadequate when displaying large sheets or importing large volumes of data.

Memory Shortage Error

When there is a memory shortage, the following error message is displayed:

fusion_place Client Side Error

Adjusting Memory Allocation

If the memory provided is insufficient, there are two possible solutions:

(1) A separate menu is available to start the client program with 1 GB of memory allocated. If only a few users, such as administrators, perform operations that require a large amount of memory, please use this menu. For the URL of the menu, refer to "Launching Java Client from Web Browser".

(2) You can adjust the amount of memory allocated to client programs launched from the menu by server-side settings (below). For example, you can increase the maximum memory allocation from 256 MB to 512 MB.

Be aware that having an excessively large assigned memory size can prevent the client from starting. Particularly when using a 32-bit version of the fusion_place runtime environment, the max-heap-size should be between 1024m to 1536m, depending on the PC’s specifications.

Adding Entries to the Tomcat Configuration File on the Server

Please add entries to the Tomcat configuration file, server.xml. The location of server.xml can be found at "Installation Specified Information Recording Location". The content of server.xml is in XML format, and under the Context element (those specifying path="/fusionplace"), you can add several Environment elements (environment variables) to specify the memory allocated to the client program. Here is an example of the description:

  <Context docBase="fusionplace.war" path="/fusionplace">
      <Environment name="fusionplace/dbms" value="H2" type="java.lang.String"/>
      <Environment name="fusionplace/pivot_time_out" value="60000" type="java.lang.Integer"/>

          <!-- From here, descriptions to specify the memory allocated to client programs -->

      <Environment name="fusionplace/initial_heap_size" type="java.lang.String" value="512m" />
      <Environment name="fusionplace/max_heap_size" type="java.lang.String" value="1024m" />

      <!-- Up to here, descriptions to specify the memory allocated to client programs -->
      ・・・
  </Context>

As shown above, each Environment element has three attributes: name, type, and value. According to the table below, set the fixed values for name and type, and set the applicable value for value in connection with your mail server. Note that there are multiple Environment elements, but the order of description does not matter.

name
(Environment Variable Name)
type
(Type of Environment Variable)
value
(Value of Environment Variable)

fusionplace/initial_heap_size

java.lang.String

Initial memory allocation. The suffix 'm' or 'g' represents megabytes or gigabytes, respectively.

Examples: 64m, 1024m, 1g

fusionplace/max_heap_size

java.lang.String

Maximum memory allocation. The suffix 'm' or 'g' represents megabytes or gigabytes, respectively.

Examples: 64m, 1024m, 1g

The two environment variables above are not mandatory. Also, you may specify either one or both. If both are specified, ensure that max-heap-size is equal to or greater than the initial-heap-size.

Memory Allocated to H2 Database Cache

As of version 6.1, "Memory Allocated to H2 Database Cache" is automatically set. The following description is for versions 6.0 and earlier. From version 6.1 onwards, specifying "CACHE_SIZE" will not apply.

Part of the memory allocated to the server programs is used by the H2 database as "cache." Increasing the size of the cache accelerates database access, as frequently accessed data is kept in the cache. The size of the cache is specified in the Tomcat configuration file, server.xml. The location of server.xml can be referenced at "Installation Specified Information Recording Location".

The content of server.xml is in XML format, and under the Context element (those specifying path="/fusionplace"), there is one Resource element (with the name attribute value "fusionplace / datasource"). Within it, you can specify the cache size in KiB as shown in the bold part of the example below (in the example, 65536 KiB or 64 MiB is specified).

  <Context docBase="fusionplace.war" path="/fusionplace">

    ・・・
    <Resource name="fusionplace/datasource"
      auth="Container"
      type="javax.sql.DataSource"
      maxActive="100"
      maxIdle="30"
      maxWait="10000"
      driverClassName="org.h2.Driver"
      url="jdbc:h2:C:\FusionPlace_DB\db\fusionplace;CACHE_SIZE=65536"
      username="…"
      password="…" />
    ・・・

  </Context>