The notes below answer questions that are often asked.
Enterprise
Server
File
Handling
Integrated Development
Environment
Migrating
Applications
OpenESQL
Projects
SupportLineA.When Enterprise Server is installed as part of reUZE Developer, the Directory Server component (MFDS) is installed as a Win32 service. By default the "Logon" properties of this service is a system account (NT AUTHORITY\SYSTEM). When you start an enterprise server using the Directory Server Web interface it will run under the same userID under which the Directory Server is running. This has some important consequences that affect your ability to interact with Enterprise Server.
It is possible to disable the Micro Focus Directory Server service and start it manually. It is also possible to change the userID under which the MFDS service runs as a service. Changing the userID will mean that the local console, if selected, will not be displayed as the service will not be allowed to interact with the desktop.
A.There are two timeout options, one for establishing the connection and another for other operations. The defaults can be overridden by setting the following environment variables:
MFC_TIMEOUT MFC_CONNECT_TIMEOUT
or editing mf-client.dat:
[defaults] connect-timeout=15 timeout=30
These timeouts are set in seconds, but with a 5-second grain, so in effect they are rounded up to the next multiple of 5 seconds. Timeouts are set as follows:
If the application calls MccSetTimeout / MccSetConnectTimeout on a context, that context will use the specified timeout values.
Otherwise, if MFC_TIMEOUT / MFC_CONNECT_TIMEOUT is set in the environment, its value will be used.
Otherwise, if a "[defaults]" section exists in mf-client.dat and it contains an entry for "timeout" / "connect-timeout", that value will be used.
Otherwise, the built-in defaults of 15s for connect timeout and 30s for other functions will be used.
A. In the base release of Net Express 3.0, the FILEMAXSIZE configuration option defaulted to 8, which was incompatible with earlier Micro Focus products.
From Net Express 3.0 Service Pack #1 onward, FILEMAXSIZE defaults to 4, limiting file addressability to 32-bit values, which is compatible with earlier Micro Focus products.
Because the default setting has changed, you might have applications linked under Net Express that have a different default setting from applications linked under reUZE Developer. Therefore, if you install reUZE Developer, you must make all the FILEMAXSIZE settings consistent across all your applications.
If applications that share files use different FILEMAXSIZE settings, file corruption and/or locking errors can occur. Setting FILEMAXSIZE to 8 allows up to 64-bit values for file addressing on Windows NT platforms when accessing the NTFS file system, but changes the underlying record locking mechanism. If you are sharing very large files, that is files greater than 1Gb in size, all programs accessing the file must use FILEMAXSIZE set to 8 to avoid possible corruption problems.
Do not set FILEMAXSIZE to 8 under any of the following circumstances:
The FILEMAXSIZE option specifies the number of bytes used internally to store file offsets. This also affects internal locking mechanisms. Programs sharing the same file all need to use the same FILEMAXSIZE settings to ensure semaphores and record locks are handled correctly, thereby avoiding potential file corruption in shared files.
A. When reading a record from a data file, the default behaviour of the COBOL system is to return the data even if the record is locked by another process. In this case, the file status returned is 9/68 to reflect that the record is currently locked.
To do this, the File Handler cannot lock the record directly as this would prevent other processes from accessing the data. Instead, it locks a virtual offset in the file to represent the lock held: it is this offset that is used to determine whether the record is locked by another process, while still allowing direct access to the data.
In turn, to determine whether there is a lock held on the virtual offset, the File Handler queries the record lock using the CBL_TEST_RECORD_LOCK API.
The API works by attempting to lock the record itself. If the lock is obtained, the API sets the return-code to indicate there was no lock held on the record and immediately releases the lock it has itself obtained. If, however, it did not obtain the lock, the return-code is updated to reflect there is a lock held by another process.
A problem arises when two processes are simultaneously accessing records from the same data file: one process might encounter a locked file status even if neither process has intentionally locked a record because the first process had obtained a record lock through the CBL_TEST_RECORD_LOCK API used by the File Handler at the same time the second process had attempted to read the same record. This issue is particularly prevalent on, but not exclusive to, multi-processor machines.
You must carefully consider the effect that the default locking regime used by the File Handler could have on your application. Most notably, in the case of a REWRITE operation where a lock has not previously been obtained by the writing process, what would be the impact on your application of a locked status being encountered during the REWRITE?
An application should always check the value of the file status following an I/O call to the file handler.
If a program will function without needing to retrieve the record information in the event of a locked record status, the locking strategy can be changed to one where the lock is placed on the record itself rather than on a virtual offset. This removes the need for the File Handler to use the CBL_TEST_RECORD_LOCK API and consequently avoids unintentional record locks. In this scenario, a 9/68 file locked status will only be returned if the record has been explicitly locked by a process.
You can use the File Handler configuration options RETRYLOCK and WRITELOCK if the default LOCKTYPE=0 strategy must be maintained but again this requires careful consideration as to the impact these setting may have on your application.
A. If you create or edit a source file outside reUZE Developer, take care that it does not contain the end-of-file marker Ctrl-Z (x1A), which some editors write at the end of a file. If the file ends with x"1A" only, there is no problem, but if it ends with x1A0D0A, when you try to debug the program, the debugger will warn you that the source file has changed and ask you if you wish to continue.
If you receive this message, look at the end of the file. If there is a blank line after what you believe to be the end of the file, deleting it will get rid of the whole string. Alternatively you can tell the reUZE Developer Editor to detect the end-of-file character and delete any characters that come after it. To do this, select Edit on the Options menu and check Detect ASCII end of file on the Profile page. Note that if you have hard-coded an arrow graphics symbol (also x1A) in the middle of the file, you will lose everything after this character.
A. Fileshare is an extension to the COBOL File Handler. It improves the efficiency of remote file handling by moving all file operations to the remote machine. This reduces communications traffic when files are being read or updated, and improves the performance of accessing shared data.
In addition, it makes full transaction processing possible by providing commit and rollback operations, as well as rollforward recovery. It treats a set of COBOL files as a database, and provides facilities for full data integrity and security.
A. A list of facilities available can be found in the Help topics. Click Help topics on the Help menu, click the Contents tab, and double-click Using reUZE Developer > Editing Programs > Overview - editing programs, or double-click Using reUZE Developer > Debugging Programs > Overview - debugging programs.
A. Yes. Having used Find All or Quick Browse to locate every occurrence of a data item, procedure or piece of text, click Compress on the View menu and select the appropriate option.
After moving the cursor to the line you want you can use Expand to get the full listing back.
You can also compress to view just the lines containing breakpoints, errors or bookmarks.
For more details, click Help topics on the Help menu, click the Contents tab, and double-click Using reUZE Developer > Editing Programs > Compressing and Expanding Lines.
A. The application text window is created when you are debugging or running a program in reUZE Developer, and an ACCEPT or DISPLAY statement is encountered. This text window is a docked window, and can be undocked or moved around inside the IDE by clicking and holding anywhere on its frame and dragging it where you want.
You can also change it to a floating (non-docked) window. Right-click anywhere on it and select the option Float on desktop .
To revert it to a docking window, right-click anywhere on the text area in the window and click the Float on desktop option. You then need to dock it manually by clicking its title bar and dragging it to where you want it docking.
For more details, click Help Topics on the Help menu, click the Contents tab, and double-click Using reUZE Developer > Customizing Your Environment > How To > Position and Dock Windows.
A. You can configure marking so that it marks whole lines or rectangular blocks. Click Edit on the Options menu, click the blocks/clipboard tab, and choose to select line blocks or column blocks as desired. If you select column blocks, you can still mark whole lines by clicking and dragging in the prefix area (the left-hand edge of the editing window) beside the lines you want to mark.
For more details, click Help Topics on the Help menu, click the Index tab, enter Block Marking, and select one of the entries.
A. The reUZE Developer Editor uses line editing rather than stream editing. Many other graphical editors use stream editing. In stream editing, the text displayed represents the stream from the file, and each line ends when a line-break is found. The line-break is treated as significant (and can be deleted to join two lines). In line editing, each line is treated as a single entity of (effectively) infinite length, with the end of the line padded by spaces.
The reason for using line editing is that COBOL has the concept of margins, and text can be placed in the left or right hand margin areas.
A. When the IDE calls the compiler, it passes it information in a command line. The command line contains the compiler directives for your program, and the RTS error 155 usually means a directive is invalid. To see the directives, and find out which one is in error, do the following.
If you are building a project:
If you are compiling a single program:
A. You have probably marked the project as an ESQL project and also marked an individual program as an ESQL program. Consequently, for that program, two SQL(DBMAN...) directives are passed to the compiler - which is illegal.
To see whether a project is marked as an ESQL project, right-click the Project window, then click Project Properties. If the project is marked as ESQL, the Project Directives field contains an SQL directive.
To see whether a program is marked as an ESQL program, right-click its source file in the Project window, then click Build Settings, then the Compile tab. If the project is marked as ESQL, the Directives field contains an SQL directive.
To fix the problem, delete the SQL directive and all its parameters from one of the two dialog boxes, depending on whether it applies to all the programs in the project or just this individual program.
A. The online book Migration Guide explains what has changed between earlier Micro Focus COBOL products and this product, and shows you what changes you will need to make to get your program working in reUZE Developer.
It also includes some assistance in moving applications coded in a mainframe COBOL dialect, though it is assumed that you are using Micro Focus products to maintain these mainframe applications.
A. By default, OpenESQL manages transactions according to the ANSI SQL92 standard. To start a transaction, you do not need a BEGIN TRAN statement. A new transaction starts automatically after a CONNECT, COMMIT or ROLLBACK.
To provide compatibility with the Micro Focus Embedded SQL Toolkit for Microsoft SQL Server, use either the ESQLVERSION directive or the AUTOCOMMIT directive. AUTOCOMMIT disables manual transaction mode. ESQLVERSION sets AUTOCOMMIT and, depending on the Toolkit version, sets additional compatibility options.
In order to provide greater flexibility and backward compatibility, OpenESQL also supports the following statements:
SET AUTOCOMMIT ON SET AUTOCOMMIT OFF
and you can use BEGIN TRAN statements to start a transaction if AUTOCOMMIT is on. After a COMMIT or ROLLBACK, AUTOCOMMIT reverts to ON. If BEGIN TRAN is executed when AUTOCOMMIT is already off, it is ignored.
A. Not all ODBC drivers support scrollable cursors, and some ODBC cursor options also disable cursor scrolling. If you are using a DataDirect Driver, check the Advanced Tab for your data source in the ODBC Control Panel to see if there is an option to enable scrollable cursors. If all else fails, the ODBC Cursor Library provides scrollable static cursors. You should compile with SQL(USECURLIB=IFNEEDED), or if this fails, SQL(USECURLIB=YES) and then any of the various OpenESQL directives that specify a static cursor. In addition, you can simply declare the cursor as follows:
EXEC SQL DECLARE myCursor STATIC CURSOR FOR ... END-EXEC
A. Not all ODBC drivers support positioned updates. For those that do, you just need to provide the appropriate locking methodology and cursor type via the various directives OpenESQL provides. We suggest you use the BEHAVIOR directive, as it does a good job of determining these characteristics for update COBOL cursors, based on whether you want to mimic mainframe or ANSI behavior. Alternatively, the ODBC Cursor Library provides positioned updates for cursors that are declared static, with an OPTCCVAL locking methodology.
A. This is a common problem with Microsoft SQL Server. If a FORWARD READONLY cursor is open, the connection with the server is busy until it is closed, and only FETCH statements can be executed.
If you have Microsoft SQL Server 2005 or later, we suggest you use Microsoft's native client ODBC driver, and enable the OpenESQL directive MARS. MARS lets you open multiple default result sets simultaneously.
A. A package file such as an .exe, .dll, .ocx, .zip or .lbr can only exist once in a project. It is likely that you have a file of the same name already defined in another build type. You can make the file visible in all build types by using Build Settings and selecting Show across all build types.
A.SupportLine is a Micro Focus Web site where you can find news about reUZE Developer, new and updated documentation, additional questions and answers, demos, additional software and documentation for download, and many other goodies as they become available. The SupportLine site is frequently updated, so don't forget to view it regularly.
Provided you have a connection to the Internet, you can access SupportLine directly from the IDE Help menu.
A.The best way to change your registration details is to complete one of the online surveys available via the Feedback section on SupportLine. At the bottom of each survey you will find your registration details, which you gave when you first connected and registered for SupportLine. You can change the email address (and other information) there. When you submit the completed survey your registration details will also be updated.
To do this you need to log on to SupportLine via your SupportLine ID. The best way to do this is to click Support>Contacting SupportLine on the IDE's Help menu.