********************************************************************************************* Content Manager V7.1.0 fixpack2 for Windows September 28th, 2001 This is an interim fixpack between Formal Corrective Service Deliverables (CSDs). Table of Contents 1. Installation Requirements 2. Installation Instructions 3. APAR Descriptions ********************************************************************************************** ********************************************* 1. Installation Requirements ********************************************* This fixpack is for Windows. In order to install this fixpack, you must be at this minimum product base level: a) Content Manager for Windows V7.1.0 (syslevel 07010000) You can determine your syslevel by: - Clicking on the START button and select RUN - Enter "REGEDIT" - Double click on "HKEY_LOCAL_MACHINE" - Double click on "SOFTWARE" - Double click on "IBM" - Double click on "Content Manager" - Click on "7.1". On the right side of the screen, the syslevel is recorded under "Fixpak applied" ********************************************* 2. Installation Instructions ********************************************* 1. Shut down and reboot your workstation to ensure that all file locks are released. 2. On the Fixpack FTP site, CD into the desired language subdirectory (for example: CD ENU to find the English Fixpack). Be aware that each National language has its own fixpack package. Because all the language fixpacks have the same name, be sure you go to the correct language subdirectory. If you don't find the language fixpack you need, ask for it. 3. Download the CM7102.WIN.EXE file in binary mode to a temporary subdirectory on your workstation. 4. CM7102.WIN.EXE is a self-extracting WINZIP file that can be extracted by simply entering CM7102.WIN. You will be prompted for a temporary directory to unzip to. You should have at least 15MB of free space. 5. Follow the GUI install panels. (Syslevel for fixpack 2 is 07010002.cm71.fixpack2) ********************************************* 3. APAR Fixes with Descriptions ********************************************* ************************************ Fixpack 710.2 ************************************ APAR NUMBER: IR46521 COMPONENT: Object Server APAR DESCRIPTION: When customer select userid properties to reset password. They would highlight the password field, type the new password, then choose ok. The 1st character of the password would get lost.. I ************************* APAR NUMBER: IR44486 COMPONENT: Library Server APAR DESCRIPTION: Customer had a Content Manager V6.1 Library Server "hang". Analysis of the frndiag.log showed the following message: ..... 2000-10-12-12.33.45.066090 Instance:FRN Node:000 PID:26404(frnxllch) Appid:none LIBRARY SERVER LL Probe:1 <2000-10-12 12:33:45.06 Type: ERRLOG File: frnpllch.c Line: 1833 RC: 7474 MsgCode: 7474> FRN7474A: An internal system problem occurred. ..... The FRN7474A is issued by frnpllch at this point because there is an error in receiving an order from the isolator api that we call. This APAR is created because the error code that is returned is not captured in the FRN7474 message. FIX DESCRIPTION: Changed the log statement to log the IsoReceive error message. ************************* APAR NUMBER: IR44489 COMPONENT: System Admin APAR DESCRIPTION: Expired time is locked by the last person/userid who logged onto sys admin... Customer has to logged on sys admin, then log off and log on again to have the rights to update/change expired time.expired time is suppose to be locked by the last person who updated not the last userid/person who logged onto sys admin.side note: expired time, once enabled can't be disabled. FIX DESCRIPTION: When scheudling a util, we were using the logged on userid and not the scheduler userid. ************************* APAR NUMBER: IR44259 / Windows COMPONENT: Library Server APAR DESCRIPTION: Jobber dies from DLL build processing making the library server unavailable. This is due to the size of the .sqc file exceeding a limitation in memory usage. FIX DESCRIPTION: Processing a very complex search on a database canoverflow our 10k buffer search clause. I have modified thecode to check the complexity of the search being processed.If the complexity is above a certain level, we will not try to process that search. ************************* APAR NUMBER: IR44109 / Windows COMPONENT: Library Server PMR NUMBER: 84765,019,000 APAR DESCRIPTION: No trace output from frncmd if utility encounters an error. To trace the execution of the frncmd utility, the batch file that starts the utility ( frnnstcu.bat ) needs to be updated. Once the updates are made and the batch file is executed, the trace starts as expected. But if the utility ends with an errorlevel of '1', the statements in the batch file to format and turn off the trace are bypassed, and the trace is lost. FIX DESCRIPTION: Moved the code to format and stop the trace to cmnexit function. ************************* APAR NUMBER: IR45048 COMPONENT: Library Server APAR DESCRIPTION: The Library Server does not issue an error message if the wrong userid is used to start it. If the wrong userid is used to start the Library Server, it initializes and presents the user with the "Accepting Requests" message. However, users get error message " FRN6740A: The logon was not successful because of error 6056 " when they try to log on. The system admin client gets a " FRN8571A: =6056 " message. The frndiag.log shows -204 SQL return codes (undefined name). To determine the correct userid, open the DB2 control center and view the Library Server database tables. The schema name is the userid that should be used to start the Library Sever. The Object Server issues the following error message when started with the wrong userid: FRN9745A: Unable to update database, because it is the incorrect database version, -1. FIX DESCRIPTION: Added a dymamic sql query that will fail under the wrong id ************************* APAR NUMBER: IR41685 / Windows COMPONENT: Library Server APAR DESCRIPTION: Warning errors from DB2 during a PREPARE for a dynamic query when retrieving an object resulted in a failure of the retrieve. FIX DESCRIPTION: In the case of receiving a warning code during a PREPARE, log the SQLCODE but attempt to continue the processing (it more often then not will be successful). ************************* APAR NUMBER: IR43485 / Windows COMPONENT: Library Server APAR DESCRIPTION: Warning errors from DB2 during a PREPARE for a dynamic query when retrieving an object resulted in a failure of the retrieve. FIX DESCRIPTION: In the case of receiving a warning code during a PREPARE, log the SQLCODE but attempt to continue the processing (it more often then not will be successful). ************************* APAR NUMBER: IR46025 COMPONENT: CS CAPI Toolkit APAR DESCRIPTION: Custom written user application terminates with a Dr. Watson error message indicating module frnndamn.exe, and text of: 'Exception: Access violation (0xc0000005)'. The application is used to load data into CM. Increasing FRNHEAPSIZE delays the access violation, setting it very small causes it to happen almost immediately. Tracing the application revealed that the access violation is actually in frnnslap.dll (which is a part of frnndamn.exe). This appears to be a memory leak in folder manager. FIX DESCRIPTION: 1. Daemon has been changed to handle error correctly when no more memory is available instead of continuing, and thus causes the crash. 2. Folder MAnager API, SimLibAddFolderItem, and several other API's, has been changed to always free the response block regardless of return code is good or bad. This will avoid memory leak when error occurs. ************************* APAR NUMBER: IR44629 COMPONENT: Library Server APAR DESCRIPTION: OLD PROBLEM DESCRIPTION (NOT ACCURATE): Migrator fails to delete a 'D' status object. The following messages are posted: FRN9763A, FRN9763A,FRN9767A, FRN9763A FRN9763A and FRN9860A rc9763. The row in BASE_OBJECTS shows the volume where the file is located does not belong to the collec- tion. This condition was caused by two quick requests for collection changes without running destager in between the requests. In the case of this customer, collections are assigned by index class. A user reindexed the same itemid twice quick enough that destager did not have a chance to run. The second collection change used the undestaged row from the first collection change and then flagged it with 'D' status which then shielded it from the destager. The problem is that the collection change process copies the source row without altering the file name and path. It is expected that destager will do this. Destager never gets a chance so the row is left with an invalid volume path and 'D' status from the second collection change. Migrator can not mount this (ADSM) volume and fails. The impact is that there are 6 messages per error which creates a large frndiag.log and the through put of migrator can be adversly affected. --------------------------------------------------------------------------- NEW PROBLEM DESCRIPTION: Migrator fails to delete a 'D' status object. The primary message is FRN9860A rc9763 but FRN9763A and FRN9767A usually preceed it. The row in BASE_OBJECTS is identified by the 'object' in the FRN9860A message which is a timestamp that replaced the original OBJ_OBJECTNAME at the time the delete status was changed. The OBJ_VOLUMEID will relate to an ADSM/TSM SMS definition that will not belong to the storage class. This condition is the result of rapid collection changes (at least two) where the original source volume was ADSM/TSM and destager is either disabled or the collection change occurs so rapidly that destager is inbetween cycles. The first collection change created a 'U' status object that would normally be handled by destager. It is the second collection change that processes the 'U' status such that the odd 'D' status BASE_OBJECTS row is created. This APAR number will be used to identify this issue in CM 6.1 and 7.1 fixpacks/CSDs (AndyM). FIX DESCRIPTION: During reindex, if the object's status is 'U', there is no need to delete the file in the original storage system. ************************* APAR NUMBER: IR44519 COMPONENT: System Administration PMR NUMBER: 08852,075,724 APAR DESCRIPTION: Userexit dll names should be restricted to length of 8 characters to avoid confusing errors FIX DESCRIPTION: Modify dialog to not allow more than 8 characters in userexit dll name ************************* APAR NUMBER: IR46054 / Windows COMPONENT: JSA PMR NUMBER: 52007,180,000 APAR DESCRIPTION: The CM 7.1 System Admin Client allows you to delete the NOINDEX index class. This can be done if you select the NOINDEX index class and press the delete key. In CM 6.1, the SysAdmin client does not respond to the delete key. ************************* APAR NUMBER: IR45599 / Windows COMPONENT: JSA PMR NUMBER: 85534,519,000 APAR DESCRIPTION: ATTEMPTS TO USE CONTENT MANAGER COMMAND LINE BATCH UTILITY TO CREATE NEW USERS FAILS WITH MSG "UNABLE TO PARSE OPTIONS. Using the instructions outlined in the Content Manager System Administrator's Guide to create users using the batch command facility. User enters the following command and gets a response that it cannot parse the supplied options: frnnsacld.exe SajcBatch -u user_list.lst -p default.pro -e log Unrecognized option: -u Unable to parse 1.2 format supplied options - rc=-6 Usage: frnnsacld.exe -options sa.client.SajcAdmin args... (to start the system admin) May also see "invalid argument" using CM 6.1 Apar fix should apply to both CM61 and CM71 ************************* APAR NUMBER: IR46455 COMPONENT: CS CAPI Toolkit PMR NUMBER: 48321,090,618 APAR DESCRIPTION: If the SimLibReadAttr API call is issued with the System Attribute OIM_ID_ITEM_CREATE_TIMESTAMP, the call returns an empty string instead of the expected timestamp. FIX DESCRIPTION: If the SimLibReadAttr API call is issued with the System Attribute OIM_ID_ITEM_CREATE_TIMESTAMP, the call returns an empty string instead of the expected timestamp. A type cast was missing during an if statement comparision therefore the comparision always fail. This problem was present in the functions FM_ReadAttr and FM_WriteAttr2. Add a type cast so both data values can be compared using the same data type. ************************************ Fixpack 710.1 ************************************ APAR NUMBER: IR44458 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: When calling simlibsearch with the null (0 Length) search string client receives FRN6772A error message. FIX DESCRIPTION: In LibPackageHostVarValue function (in frnpllrs.c) set string length to 1 when host var's attrType is varchar and host var string is null and the usOperator is relational. ************************* APAR NUMBER: IR44921 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: FRN8635A - Timeout occured waiting for the Library Server to respond to a request. The program times out at the retreive step (ExtRC=8635). DB2 traces show that the update and retrieve are sent to DB2 as two different units of work, so the retrieve ends up waiting for the update to finish, which won't happen until the retrieve finishes. A classic deadlock / timeout situation. FIX DESCRIPTION: Depending whether we are in a transaction or not, derive the proper Library Client session handle to be used within SimLibqueryPartExtSrch. This APAR also fixes a login problem where ProcessACLRows causes an access violation during logon. ************************* APAR NUMBER: IR45091 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: API SimLibCreateItem cannot handle system defined attributes and failed with error FRN6216. FIX DESCRIPTION: Changed SimLibCreateItem code to allow handling of system-defined attributes. ************************* APAR NUMBER: IR45224 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: Customer deleted frnadmin userid and they loged on to sys admin with another userid w/ maxprivs and created a new userid called "frnadmin". The customer then logs on with the userid "frnadmin" and receives a msg saying "the password doesn't match the userid for the patron..." frndiag.log on lib srvr: Type: ERRLOG file: frnpllcn.c Line 5528 RC: 7051 Msg Code: 7051 FRN7051A: The password specified for patron FRNADMIN is not valid. FIX DESCRIPTION: LibDefinePatron() in lcporder.c module the encrypted password was set to "FED0F6C9018BCF4A". It should be "B59CC182B7BDCD01". ************************* APAR NUMBER: IR45268 COMPONENT: Object Server / 5648D0412 APAR DESCRIPTION: Remote data migration from OS/2, WinN, or AIX v241 to CM 61 or later leaves files on the Target Object Server's "staging" volume without DB entries due to a design change in transaction logic in CM61. These HOMELESS files reside on the "staging" volume and are not destaged/archived to other volumes. The customer subsequently has their "staging" volume fill up. FIX DESCRIPTION: Remote migration cleanup on CM61/71 destages/archives the HOMELESS files to other volumes and the "staging" volume then reclaims space. On the Object Server, the environment variable FRN_DESTAGEALL=1 must be set for the destager to handle these unique files. ************************* APAR NUMBER: IR45227 COMPONENT: Common Services / 5648D0432 APAR DESCRIPTION: When setting environment variable DB2CODEPAGE to a different value on a CM client system and then logging on to the server, the client receives error "FRN8180A The system cannot find either the message file or the message in the message file". FIX DESCRIPTION: CM codepage conversion relies on the DB2 OSS layer. Setting this DB2 environment variable changed the behavior of CM. We fixed it by removing the dependency on DB2CODEPAGE in CM codepage conversion. ************************* APAR NUMBER: IR45234 COMPONENT: Object Server / 5648D0412 APAR DESCRIPTION: Replication within same server had permission problems in staging volume. Subsequently the files were never replicated to the archive volume. FIX DESCRIPTION: Migrator code changed to fix this problem. ************************* APAR NUMBER: IR45320 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: When hObj->sVersion is not 0, any media object cannot be retrieved. SimLibOpenObject gets rc= 8682 FIX DESCRIPTION: In SimLibOpenObject code, after the LibRetrieveItemPartAsync finishes the RETRIEVE_ORDER_CL order creation, if sVersion > 0, then reset the szElementKey field in the element table using sVersion -1 as the internal version number so the szElementKey field will match the media object name sent over from the Object Server instead of unmatching object name in the element table. ************************* APAR NUMBER: IR45512 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: Utilization of the supported ip2toccount api (as used by the Content Management client application) to determine the count of items in a workbasket results in a lenghthy response time when the number of items and workbaskets is large. While the same values to determine the same results is contained in the FRNWIPITEMS table, the values are not kept in sync with the FRNITEMS table. Subsequently, any attempts to bypass the performance issues of the api by issuing a direct sql against the FRNWIPTEMS table results in possibly incorrect information. FIX DESCRIPTION: Check if all search filters are set to ALL in MakeQueryTOCEntries function (in fipquery.c). If so, issue dynamic SQL search selection only from SBTWIPITEMS. ************************* APAR NUMBER: IR45627 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: After loading one or more objects into CM, either SimLibUpdatePartExtSrch or SimLibUpdateObject is called to update the content of the objects. If the size of any object is greater than 67000 bytes, SimLibUpdatePartExtSrch or SimLibUpdateObject will fail on AIX with return code = 6256, or SIM_RC_RESIZE_FAILED, and returned hErrLog = 6395, or SIM_RC_WRITEOBJECT_FAILED. If Folder Manager trace is turned on, it will report a return code of 6256 by SimLibWriteObject. As a result, the update activity fails. FIX DESCRIPTION: Function CmnRetrieveFileData called fread() incorrectly. The third parameter of fread() function call should be 1, not the size of the file. Only the second parameter should be the size of the file, but not both the second and third parameters. ************************* APAR NUMBER: IR45951 COMPONENT: Toolkit / 5648D0452 APAR DESCRIPTION: The 16-byte itemID's currently are generated by clients randomly. This may cause performance problems for customers if the number of itemId's is huge. To solve that performance problem, a Library Client user exit is created to allow users to use their own algorithms to generate new itemID's in a more sequential manner. FIX DESCRIPTION: The default userexit is a no-op function and simply returns 0 to the caller. A sample userexit (commented out) is provided in this userexit. To use the sample method, users can simply un-comment it and modify it anyway desirable by the users, and build the userexit again. So the default behavior of this userexit is business as usual, that means no impact to existing customers, unless the userexit is modified and rebuilt by the customers. User exit: LibCreateItemID (generate item ID user exit) Format: LibCreateItemId (pszItemID,pszWorkStationID,sIndexClassID,pszUserID,sSemType) PURPOSE: When an application creates an item, Content Manager assigns the item several system-defined attributes. One of those system-defined attributes is an item identifier (item ID), which is randomly created by the Library Server Client. This user exit allows you to change the way the Library Server client generates item IDs. You can use the sample in this user exit to have the library client create sequential item IDs. To use the sample, remove the comments tags in the code and recompile. You can also modify the sample code and add your own algorithms. The library client encrypts the password that is associated with the user before it is transmitted to the library server. Use LibEncryptPassword if you want to provide your own encryption algorithm or eliminate the password encryption. Note: If you don't "uncomment" the sample code, the CM library server client will create item IDs as it is originally designed to do; random ID generation. PARAMETERS: pszItemID: CHAR - input and output A parameter passed in by the internal code. pszWorkStationID: CHAR - input The character string of the host name. The maximum length for this string is 18 bytes, which includes the null terminator. sIndexClassID: SHORT - input The index class identifier. pszUserID: CHAR - input The NULL-terminated character string that specifies the password for the user ID. This parameter is not case sensitive. sSemType: SHORT - input The semantic type of the item to store. The semantic type of an item indicates its general classification. Use a 2-byte integer. The predefined semantic types are: SEMTYPE_ACL Indicates that the item is an access list. SEMTYPE_ANNOTATION Indicates that the item is an annotation. SEMTYPE_DOCUMENT Indicates that the item is a document. SEMTYPE_FOLDER Indicates that the item is a folder. SEMTYPE_HISTORY Indicates that the item contains history events. SEMTYPE_MGDS Indicates that the item contains MGDS data. SEMTYPE_NOTE Indicates that the item is a note. SEMTYPE_USER Indicates that the item is a user item. SEMTYPE_WORKBASKET Indicates that the item is a workbasket. SEMTYPE_WORKFLOW Indicates that the item is a workflow. SEMTYPE_NONE Indicates that the item has no semantic type. All other values are for use by applications. The library server does not interpret them, so they can be used by the application in any way you want to. RETURN VALUES: The function returns a value of SHORT with zero for SUCCESS and -1 for FAILURE. COMMENTS: The function is located in the FRNPLCPW.C module. In the Windows environment, the sample source code for this user exit routine is located in the \USEREXIT subdirectory of your install root directory. The LibCreateItemID function is a single function in FRNWLCPW.DLL. You can replace FRNWLCPW.DLL with your own FRNWLCPW.DLL. ************************* APAR NUMBER: IR46219 COMPONENT: Object Server / 5648D0412 APAR DESCRIPTION: Object Server Recovery deletes files not found in the database. Normally this is recommended, but in the case of APARS IR45028 and IR45268, these files will unintentionally be left in an abnormal state and are not in the database. So deleting these files before IR45268 is applied and run will permanently remove these files. FIX DESCRIPTION: The default behavior of Object Server recovery NO LONGER deletes files not found in the database. If you wish this behavior to happen, then you must set the Environment variable FRNRECDELETE=1 and run recovery to delete the files. ********************************************* TRADEMARKS __________________________________________________________________________ IBM Content Manager for Multiplatforms V7.1 (program number 5648-D04) (c ) Copyright IBM Corp. 1994, 2000. Licensed Materials - Property of IBM All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corporation