ProFrame C 5.0
This chapter briefly describes the new features added to ProFrame C 5.0.
1. New Features
1.1. Multi Project
ProFrame added a feature that enables the creation of multiple projects simultaneously by using a metadata project identifier (PROJECT_ID) for logical separation.
-
Project-specific runtime configuration
Provides an independent execution environment for each project through project-specific runtime configuration.
-
Multi-connection support for heterogeneous DBs and independent DBMS usage per project
Supports Oracle and Tibero databases, allowing DBMS connections to be configured independently for each project.
-
Multi-project support in WebAdmin
Users can select a Project ID on the WebAdmin start page, and a dedicated WebAdmin page is provided for each project.
-
Remote source generation and compilation per project
Provides the capability for remote source generation and compilation by configuring a Logserver for each project. The generated source and compiled files are created in the specified Logserver directory.
<configField id="PRJ1" type="subConfigField" value="true" xmlns="" > <subConfigField id="LOG_IP" type="string" value="192.168.1.123" xmlns="" /> <subConfigField id="LOG_PORT" type="string" value="9998" xmlns="" /> </configField> <configField id="PRJ2" type="subConfigField" value="true" xmlns="" > <subConfigField id="LOG_IP" type="string" value="192.168.1.124" xmlns="" /> <subConfigField id="LOG_PORT" type="string" value="9999" xmlns="" /> </configField>
-
Customized configuration management via SitePlug
Added a site customization feature.
-
REQUEST_PUBLISH message: Requests the generation of configuration management files for project-specific resources from the Configuration Management Agent.
-
REQUEST_APPROVAL message: Requests approval to generate a project-specific tar file on the Logserver, which can be retrieved from the Configuration Management Agent.
-
-
Multi-project support for ServerCMDStream
Supports XML resources created on a server that supports multi-project environments without requiring any modification to the existing sending program.
-
Metadata synchronization via ServerCMDStream
When metadata is transmitted using ServerCMDStream, the metadata is registered across all projects.
If the projectID is specified in the XML, the metadata is registered only for the corresponding project. The following modes are supported: C (Create), U (Update), D (Delete).
-
Automatic runtime switching based on data source availability when using DBIO
When DBIO is used and the data source is not available, the system automatically switches to the runtime data source.
-
Project-specific logging on/off
Provides the ability to enable or disable logging for only the projects required by the user by using USE_PROJECT_LOG option in the integrated server’s PfmDevSvr.xml.
To use this feature, the following must be set in advance: <configField id="USE_PROJECT_LOG" value="TRUE" type="String" xmlns=""/>
<configField id="MULTI_PROJECT" value="TRUE" type="String" xmlns=""/> <configField id="PROJECT_ID" value="PRJ1:PRJ2" type="String" xmlns=""/> <configField id="USE_PROJECT_LOG" value="TRUE" type="String" xmlns=""/> <configField id="PRJ1" type="subConfigField" value="true" xmlns="" > <!-- Logging ON --> <subConfigField id="USE_PROJECT_LOG" type="string" value="TRUE" xmlns="" /> </configField> <configField id="PRJ2" type="subConfigField" value="true" xmlns="" > <!-- Logging OFF --> <subConfigField id="USE_PROJECT_LOG" type="string" value="FALSE" xmlns="" /> </configField>
-
Ability to log in to the Studio by selecting a project
When logging in to the studio, users can select a project to log in to.
1.2. Release Image / Work Space
A feature has been added to enable separate management of the Release Image (RI) (operational area) and Work Space (WS) (development area). Resources can be moved between development and operational configurations through check-in and check-out, and resources can be created and modified only in the WS area. For more information about RI and WS, refer to the relevant manual.
-
Check-in
Provides the ability to move resources from the WS area to the RI area. Users must enter a check-in history, and the checked-in resources are removed from the WS area.
-
Check-out
Provides the ability to copy resources from the RI area to the WS area.
-
Check-out cancellation
Provides the ability to cancel a check-out without applying the checked-out resources in the WS area to the RI area. When a checked-out is canceled, the corresponding resources are removed from the WS area.
-
Resource management by RI/WS area (Open, Delete, Modify, etc.)
Provides the ability to manage resources separately in the RI area and WS area. Resource management capabilities differ from the RI and WS areas.
-
RI area: Open, Delete
-
WS are: Create, Save, Open, Delete, Modify
-
-
Unit testing capability by RI/WS area
Provides the ability to perform unit tests for resources in the RI area and the WS area.
-
Source generation and unit testing by changing the target of called modules in the WS EMB
Provides the ability to generate resources by changing the target (RI/WS) of called modules in the EMB of the WS area, and to perform unit tests using the generated resources.
The target of a called module can be changed in the module’s properties window.
Changing the Module Target -
RI/WS feature enable/disable support
Provides the ability to enable or disable RI/WS functionality using the USE_RIWS option in the integrated server’s PfmDevSvr.xml.
<!-- Enable/Disable RI/WS feature --> <configField id="USE_RIWS" value="TRUE" type="String" xmlns=""/>
-
Option to delete WS history data during resource check-in
Provides the ability to delete WS resource history during resource check-in. This feature can be enabled or disabled using the DELETE_WS_HISTORIES option in the integrated server’s PfmDevSvr.xml.
<!-- Wheter to delete WorkSpaceHistory during RI/W check-in --> <configField id="DELETE_WS_HISTORIES" value="TRUE" type="string" xmlns=""/>
-
Support for separate data source configuration for RI, WS, Runtime, and DBIO
Provides the ability to configure data sources separately for the RI, WS, Runtime, and DBIO. Data sources can be configured in JEUSMain.xml.
<resource> <data-source> <database> <vendor>oracle</vendor> <export-name>[EXPORT_NAME]</export-name> <data-source-class-name> oracle.jdbc.pool.OracleConnectionPoolDataSource </data-source-class-name> <data-source-type>ConnectionPoolDataSource</data-source-type> <database-name>orcl</database-name> <data-source-name> oracle.jdbc.pool.OracleConnectionPoolDataSource </data-source-name> <port-number>[PORT]</port-number> <server-name>[IP]</server-name> <user>[USER]</user> <password>[PASSWORD]</password> <driver-type>thin</driver-type> <connection-pool> <pooling> <min>10</min> <max>20</max> <step>2</step> <period>600000</period> </pooling> </connection-pool> </database> <database> <vendor>tibero</vendor> <export-name>[EXPORT_NAME]</export-name> <data-source-class-name> com.tmax.tibero.jdbc.ext.TbConnectionPoolDataSource </data-source-class-name> <data-source-type>ConnectionPoolDataSource</data-source-type> <database-name>tibero</database-name> <data-source-name> com.tmax.tibero.jdbc.ext.TbConnectionPoolDataSource </data-source-name> <port-number>[PORT]</port-number> <server-name>[IP]</server-name> <user>[USER]</user> <password>[PASSWORD]</password> <driver-type>thin</driver-type> <connection-pool> <pooling> <min>10</min> <max>20</max> <step>2</step> <period>600000</period> </pooling> </connection-pool> </database> </data-source> </resource> -
Support for handling multiple connections within a single transaction without concurrency problems
Provides the ability to process multiple connections within a single transaction without concurrency problems.
-
Deletion of WS source files when deleting resources in the WS area
Provides the ability to delete a resource’s source, header, and XML files from the local system when the resource in the WS area is deleted.
-
RI/WS module testing by batch program
Provides the ability to test modules in the RI/WS areas individually by exporting the RI/WS CALL option.
### When calling a batch module in the Release Image (RI) area export PFM_WS_DLCALL_YN=N ### When calling a batch module in the Work Space (WS) area export PFM_WS_DLCALL_YN=Y
1.3. TCache
-
Backup functionality
Provides the ability to back up TCache items loaded in shared memory.
-
Usage
$ pfmtcachebackup -t [ALL | ITEM_NAME | PFM_*]Option Description -t ALL
Backs up all item entries.
-t [ITEM_NAME]
Backs up the specified item entry.
-t PFM_*
Backs up item entries that match the wildcard character (only '*' is supported) based on the starting letter.
-
-
Restore functionality
Provides the ability to load backed-up files into TCache item entries.
-
Usage
$ pfmtcacherestore -d [Date : YYYYMMDD] -t [ALL | ITEM_NAME | PFM_*]Option Description -d [Date : YYYYMMDD]
Sets the date of the backup file to load.
-t ALL
Loads all item entries from the backup file.
-t [ITEM_NAME]
Loads the specified item entry from the backup file.
-t PFM_*
Loads item entries from the backup file that match the wildcard character (only '*' is supported) based on the starting letter.
-
-
Tuning based on Avg List
Provides the ability to check the Avg List value to ensure optimal TCache performance.
The Avg List value can be checked using pfmtcacheadmin -s and adjusted via the SIZE_HASH value. The SIZE_HASH and Avg List are inversely proportional.
-
Added pfmTCacheItem functionality
Provides the ProFrame-specific API, pfmTCacheItem. pfmTCacheItem implements the functionality of pfmTCacheGet and pfmTCachePut in a single function.
pfmTCacheItem uses the DB connection of the BusinessModule configured in CALLBACK_NAME under $TCACHECONF. For example, when "CALLBACK_NAME=GET_PFM_BM" is configured, if data is not found during pfmTCacheGet, the system retrieves the data from the GET_PFM_BM and processes the logic for pfmTCachePut. In this case, the library invoked via DlCall is libGET_PFM_BMC.so.*. In a WS/RI environment, only the RI-area BM without the "_WS" suffix is invoked via Dlcall.
Due to internal processing structure, BM is limited to ProFrame C BusinessModule with IN/OUT capabilities. The size of the BM input structure corresponds to SIZE_KEY, and the size of the output structure corresponds to SIZE_REC. CALLBACK_NAME must be set to the physical name of the BM "CALLBACK_NAME=GET_PFM_BM".
-
Example of pfmtcache.cfg Configuration
# cache for PFM_SVC CACHE_NAME=PFM_SVC SIZE_MEM=6553 # the total cache memory size in kilo-bytes SIZE_HASH=1024 # the number of hash key (MAX=6553) SIZE_KEY=30 # the number of digits of the index column SIZE_REC=2048 # the size of a single record in bytes INV_TIMEOUT=10 # invalidation timeout in sec CALLBACK_NAME=GET_SVC_BM # libGET_SVC_BM.so
-
2. Changed Features
2.1. Studio
-
FileIO changed to PlugIn
FileIO has been removed from the default resource types and changed to be added as a PlugIn.
-
Server changed to PlugIn
Server has been removed from the default resource types and changed to be added as a PlugIn.
-
strcpy function changed to strncpy in DBIO JAVA source generation
In DBIO Java source generation, the string copy function has been changed from strcpy to strncpy when copying string-type data.
2.2. Integrated Server
-
Improved functionality for executing ServerCMD in a separate thread
When created in a separate thread, the internal communication object (SimpleBuffer) has been updated to include all required information for communication.
-
Multi-project support for ServerCMDStream
Functionality has been improved to support XML resources created on servers that support multi-projects via HTTP communication containing project information, without requiring any modification to the existing sending program.
-
Server changed to PlugIn
Server has been removed from the default resource types and changed to be added as a PlugIn.
-
Improved handling of multiple configuration management requests
Functionality has been improved to process multiple configuration management requests.
3. Removed Features
3.1. Studio
-
Removed structure transformation feature
The Transformation feature used in EMB modules to handle structural field differences or manual mapping has been removed.
-
Removed DBIO C source generation
C source generation, which was one of the DBIO source generation methods, has been removed. In version 5.0, Only Java source generation is supported.
4. Bug Fixes
4.1. Studio
-
Fixed an issue where error occurred during check-in/check-out of default queries
Resolved an issue where related DBIOs and associated structures were not checked in or checked out together when a default query was checked in or out.
-
Fixed an issue where Persist DBIO check-in would stop
Resolved an issue where Persist DBIO check-in process stopped without any message.
-
Fixed an issue where table and group names were not applied during default DBIO query creation
Resolved an issue where table or group name changes were not reflected when regenerating a default DBIO query while the creation wizard remained open due to an error.
4.2. Integrated Server
-
Fixed an issue where client IP is missing in DEV_HISTORY table
Resolved an issue where the client IP was missing from the history table.
-
Fixed an issue where errors occurred on the Log Server when saving large resources
Modified behavior to allow large resource files to be split and transmitted in multiple parts when sent through the log server.