home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / os2 / wptool09.zip / CHECKINI.TXT < prev    next >
Text File  |  1993-05-07  |  15KB  |  395 lines

  1.                          === DISCLAIMER ===
  2.  
  3.  
  4. I allow you to use and distribute CHECKINI freely under the
  5. condition that I am in no way responsible for any damage or
  6. loss you may suffer. 
  7.  
  8.  
  9. Henk Kelder, 2:280/801.339@fidonet.org
  10.              ^^^^^^^^^^^^^<-(new address)
  11.  
  12.  
  13.            === IMPORTANT - READ THIS FIRST !===
  14.  
  15. You should take care when using this program on new versions of
  16. OS/2 since this program interprets data from the ini-files. 
  17. The internal structure of this data can change, and the
  18. program might fail or even corrupt information
  19. This was the case with the new OS/2 2.00.1 (or 2.01) version as well
  20. as the Service Pack release in october 1992.
  21.  
  22. The best way to test this is run checkini WITHOUT the /C option! 
  23. (Optionally use the /W option to write out all checkini's findings and 
  24. inspect the logfile)
  25. If Checkini reports un unusual amount of errors, the internal structure of
  26. the workplace shells data inside the ini-files might have changed. 
  27. Look in CHECKINI's logfile at the  
  28. "PM_Abstract:Objects & PM_Abstract:FldrContents" section with special care.
  29. If this section contains a lot of errors while your workplace shell seems to
  30. function properly there might have been a change, so:
  31.  
  32.  
  33.          DO NOT USE CHECKINI.EXE or WPSBKP.EXE then!
  34.          ===========================================
  35.  
  36. (see DANGER.TXT about this)
  37. Note: The warning above does not apply to WPSREST.EXE and COPYINI.EXE!
  38.  
  39.  
  40.  
  41. CHECKINI checks for, and optionally corrects, some problems in
  42. OS2.INI and OS2SYS.INI. CHECKINI only looks at information
  43. regarding the workplace shell. 
  44. The make full use of CHECKINI read this document to require
  45. information about what CHECKINI does.
  46.  
  47. CHECKINI does not work when Presentation manager has not been started.
  48.  
  49.                     ==== DESCRIPTION ===
  50.  
  51.  
  52. The main reason for CHECKINI is the growth that the both .INI
  53. files tend to have if one uses the Workplace shell heavelly.
  54. Using CHECKINI in conjunction with COPYINI helps to reduce the
  55. INI files sizes, which in turn should increase the workplace
  56. shells performance.
  57.  
  58. Also CHECKINI helps to determine some possible cause's for
  59. workplace shell failures like loosing workplace shell objects,
  60. or situations in which a program object looses the proper
  61. executable name or current directory. Obviously, the real
  62. cause for these problems must be in the workplace shell
  63. itself, CHECKINI however could help you to determine the
  64. degree of damage that has been done.
  65.  
  66.  
  67. PM_Workplace:Handles
  68.  
  69. A special note is in place about a specific piece of
  70. information in the INI-files called 'PM_Workplace:Handles'.
  71. The workplace shell uses some obscure entity called
  72. object-handles to refer to objects. Object handles are infact
  73. numbers. A object-handle can refer to a abstract object (a
  74. object NOT on your harddisk e.g. the color palette) and 
  75. file-system objects (files & directories). 
  76.  
  77. Abstract objects reside in the ini-files. 
  78. File-system objects reside on your harddisk. 
  79.  
  80. Whenever you add a program object to your desktop and specify
  81. a programfile the workplace shell determines if a handle was
  82. already assigned to the programfile and if so, it uses this
  83. handle. If no handle was assigned, the shell creates a handle
  84. and assignes it to the programfile. In the definition of the
  85. program object (self an abstract object) the handle for the
  86. programfile is stored.
  87.  
  88. When you start the program by clicking on the object the wps
  89. must have a way to refer the stored handle back to the
  90. programfile. This is done by using the 'PM_Workplace:Handles'
  91. information. Unfortunately only handles are added to this
  92. information and they are not removed when a (program)file is
  93. removed from your harddisk.
  94.  
  95. In theory the total amount of handle-to-file information could
  96. grow to big and than without any warning you will loose
  97. information. The workplace shell than shows nonsence or
  98. nothing at all in some of your program objects.
  99.  
  100. CHECKINI allows you to remove handles for files or directories
  101. that are no longer present or inaccessable.
  102.  
  103.  
  104. If you have installed the october service pack (CSD Level
  105. XR06055) there has been a minor change in mechanisme described
  106. above. The workplace shell now keeps multiple versions of
  107. 'PM_Workplace:Handles' in the ini-files. Appearantly this is
  108. intended as a error-recovery mechanism. However, I've been
  109. unable to determine of the backup mechanism itself is
  110. implemented. As a result of this your OS2SYS.INI even grows more
  111. rapidly!
  112.  
  113.  
  114. ORPHAN OBJECTS
  115.  
  116. An wide spread way to remove undeleteable objects is to move
  117. them to a directory, and then, in a OS/2 or DOS session remove
  118. the directory. The Workplace shell than no longer shows the
  119. objects. They are infact NOT removed but they simply have no
  120. parent directory they will show in (no stool to sit on).
  121. Also, sometimes it is possible that suddenly several objects
  122. are lost. A reason for this could be a unintentional removal
  123. of a desktop directory.
  124.  
  125. CHECKINI detect these 'orphan objects' and queries to user
  126. (when /C specified) to move these objects to another (new)
  127. location. The moved objects will appear after the workplace
  128. shell has been restarted. (after a reboot!)
  129. If this question is answered with NO, another question is
  130. asked whether the objects should be removed from the
  131. ini-files.
  132.  
  133.  
  134. WARNING 1
  135.  
  136. if you are normally connected to a network and run CHECKINI
  137. when you are NOT connected to this network, or when you are
  138. not logged in, CHECKINI will report errors for references to
  139. network objects.
  140. In the situation mentioned above and with the /C switch given,
  141. take care when confirming deleting or correcting problems.
  142.  
  143. WARNING 2
  144.  
  145. Whenever you run CHECKINI with the /C switch you must be
  146. prepared to shutdown immediatly after you have run the
  147. program. This because the workplace shell has a lot of info in
  148. memory and it you keep on working some of the changes checkini
  149. has made will be overwritten by the desktop. 
  150.  
  151.  
  152.  
  153.  
  154. USING CHECKINI
  155.  
  156. From an OS/2 command prompt enter the command CHECKINI.
  157. Without any command line options CHECKINI doesn't change
  158. anything to your ini-files.
  159.  
  160. COMMAND LINE OPTIONS
  161.  
  162. /C             -    Write corrections to ini-files. The
  163.                     default is to diagnose only. If this
  164.                     option is specified the program will ask
  165.                     confirmations for all changes it may want
  166.                     to do in your ini-files.
  167.  
  168. /APath         -    Specify different location for ini-files
  169.                     to be checked. This option is usefull if
  170.                     you have a copy of you ini files and you
  171.                     would like these copies to be checked. 
  172.                     NOTE: Do NOT use this option to check ini-
  173.                     files not belonging to the PC you run
  174.                     CHECKINI on.
  175.  
  176. /Llogfilename  -    Specify name of logfile. The default is
  177.                     CHECKINI.LOG in the directory you start
  178.                     the program in.
  179.  
  180. /W             -    Write all output to logfile. Normally only
  181.                     problems are written to the logfile. This
  182.                     option could help you to inspect a lot
  183.                     about your workplace shell objects
  184.                     (actually workplace shell objects
  185.                     instances).
  186.  
  187. /S             -    'Silent run', only write logfile. Normally
  188.                     found errors are reported directly.
  189.  
  190. /?             -    Show info.
  191.  
  192.  
  193.  
  194. HOW THE PROGRAM WORKS
  195.  
  196. While running CHECKINI displays all found information on the
  197. screen. Whenever a problem is found, and the /S switch is not
  198. used the program reports the problem. The problem itself is
  199. visible in the bottom lines of the screen. Problems are always
  200. reported in CAPITALS.
  201.  
  202.  
  203. EXAMPLES of OUTPUT:
  204.  
  205. =================================================
  206.  PM_Workplace:Handles:BLOCK1                   
  207. =================================================
  208. 3E2DA:CHECKINI.EXE   =>E:\ICON\CHECKINI.EXE<-UNABLE TO ACCESS
  209. 395F8:COPYINI.EXE    =>E:\ICON\COPYINI.EXE<-UNABLE TO ACCESS
  210. 39400:GETPROG.EXE    =>E:\ICON\GETPROG.EXE<-UNABLE TO ACCESS
  211. =================================================
  212.  PM_Abstract:Objects & PM_Abstract:FldrContents
  213. =================================================
  214.   Object 13087, Class WPNetLink : A network folder
  215.    Linked to: \\SERVER09\SYS3\DIRECTORY1<-UNABLE TO ACCESS!
  216.   Object 140AD, Class WPNetLink : SYS3
  217.    Linked to: \\SERVER09\SYS3<-UNABLE TO ACCESS!
  218.   Object 15185, Class WPNetLink : SYS1
  219.    Linked to: \\SERVER09\SYS1<-UNABLE TO ACCESS!
  220.   Object 15956, Class WPNetLink : A network folder
  221.    Linked to: \\SERVER09\SYS3\DIRECTORY1<-UNABLE TO ACCESS!
  222. =================================================
  223.  Checking AssocCheckSum                          
  224. =================================================
  225. PMWP_ASSOC_CHECKSUM:252153
  226.   points to 3D8F9 - E:\ICON\GETBLOCK.EXE<-UNABLE TO ACCESS
  227. =================================================
  228.  Checking FolderPos                              
  229. =================================================
  230. PM_Workplace:FolderPos:252223@10
  231.   points to 3D93F - OBJECT DOES NOT EXIST
  232.  
  233.  
  234.  
  235. WHAT THE PROGRAM CHECKS
  236.  
  237. The following ini-records (Application - Key) are checked:
  238.  
  239. PM_Abstract:Objects     - (all keys)
  240. (Mainly checks WPProgram objects for consistency, but also
  241. checks for 'lost-objects' - objects moved to non-existing
  242. locations. Also checks WPNetLink and WPShadow links.)
  243.  
  244.  
  245. PM_Abstract:FldrContent - (all keys)
  246. (Used for the check mentioned above for 'lost-objects')    
  247.  
  248.  
  249. PM_Workplace:Handles[0/1] - BLOCK1 
  250. (Checks consistency and existence of filesystem object-handles)
  251.  
  252. PM_Workplace:Location   - (all keys)
  253. (Checks existence of object where id-strings like <WP_DESKTOP> point to)
  254.  
  255.  
  256. PM_Workplace:Folderpos  - (all keys)
  257. (Checks for obsolete saved object positions, fonts, etc)
  258.  
  259. PM_PrintObject:JobCnrPos - (all keys)
  260. (Checks for obsolete saved print job container positions)
  261.  
  262. PM_Workplace:PalettePos - (all keys)
  263. (Checks for obsolete saved palette positions, fonts, etc)
  264.  
  265. PM_Workplace:Templates  - (all keys)
  266. (Checks for template-records that refer to non-existing objects)
  267.  
  268.  
  269. PM_Abstract:Icons       - (all keys)
  270. (Checks for obsolete icons, icons for abstract objects that do
  271. not exist)
  272.  
  273. PMWP_ASSOC_FILTER       - (all keys)
  274. (Checks for associations with non-existing objects)
  275.  
  276. PMWP_ASSOC_TYPE         - (all keys)
  277. (Checks for associations with non-existing objects)
  278.  
  279. PMWP_ASSOC_CHECKSUM     - (all keys)
  280. (Checks for obsolete checksum record that point to
  281. non-existing objects)
  282.  
  283. PM_Workplace:Location   - (all keys)
  284. (Checks consistency of logical location names e.g.
  285. <WP_DESKTOP>)
  286.  
  287. PM_Workplace:Startup    - (all keys)
  288. (Checks if the referenced folders are infact startup folders)
  289.  
  290. FolderWorkareaRunningObjects - (all keys)
  291. (Checks for a list of open objects for a workarea)
  292.  
  293.                === Whats new in Checkini ? ===
  294.  
  295. Notes on version 1.1:
  296.  
  297. o  Some checks were added: 
  298.     PM_Workplace:PalettePos
  299.     PM_Workplace:Startup
  300.     Some other checkings were extended.
  301.  
  302. Notes on version 1.2:
  303.  
  304. o    The check for PM_Workplace:Handles was moved so that it
  305.      would be the last test done. 
  306.  
  307. o    The frase 'DOES NOT EXIST' for file objects (files &
  308.      directories) has been changed to 'UNABLE TO ACCESS' since
  309.      this is a beter description of what CHECKINI finds.
  310.  
  311. Notes on version 1.3:
  312.  
  313. o    The only extra in this version is that it support OS/2
  314.      2.00.1 (beta version) since in this version the internal
  315.      structure of various workplace shells object data has
  316.      changed.
  317.  
  318. Notes on version 1.4:
  319.  
  320. o    Not all the data checkini appearantly needs to exist. If
  321.      some data  checkini checks does not exist, the test is
  322.      skipped.
  323.  
  324. Notes on version 1.5:
  325.  
  326. o    Checkini now works properly after installing the
  327.      servicepack dated october 1992.
  328.  
  329. Notes on version 1.6:
  330.  
  331. o    Two additional tests were added. These test are for:
  332.      - 'FolderWorkareaRunningObjects' and 
  333.      - 'PM_PrintObject:JobCnrPos'
  334.  
  335. o    When a conflict in OBJECTID's is detected (two or more objects having
  336.      the same OBJECTID, CHECKINI /c can assign a new OBJECTID to the objects
  337.      that claim to have an OBJECTID that is already in use by another
  338.      object.
  339.  
  340. o    Updated the documentation files (this file)
  341.  
  342. o    A simple test has been build in to see if OBJECTID's can be found
  343.      in the ini-files, to determine if the internal data structure of the
  344.      ini-files might have been changed and CHECKINI will fail completely.
  345.      This is however no guarantee that CHECKINI will function properly on
  346.      new versions of OS/2 2.0.
  347.  
  348. Notes on version 1.7:
  349.  
  350. o    The 'simple test' mentioned above might block someone using CheckIni
  351.      if the ini-file itself is corrupt. Now the test is only performed when
  352.      /C (correct) switch is specified.
  353.  
  354. Notes on version 1.8:
  355.  
  356. o     When checking 'PM_Workplace:Handles' a test has been put in that 
  357.       checks the accessibility on a volume in one strike. 
  358.       If the user okays the removal of a non-locateable volume, all
  359.       handles on that volume are removed without further checking.
  360.  
  361. Notes on version 1.81:
  362.  
  363. o     Appearantly CheckIni went bananas whenever an alternate ini directory 
  364.       was specified and no ini's were found. This has been corrected.
  365.  
  366. o     Some minor enhancements were made to the text that is being shown on
  367.       the screen. These changes mainly have to do with signalling problems 
  368.       with OBJECTID's.
  369.  
  370. o     CheckIni refused to Change/Correct anything if the Desktop's 
  371.       Extended attributes have been damaged. 
  372.       CheckIni now offers a try-to-repair option.
  373.  
  374.       This option comes down to CheckIni re-assigning objectid <WP_DESKTOP>
  375.       to the desktop when CheckIni is unable to locate this ObjectId inside
  376.       the Desktop Extended Attributes. If this corrective action has been
  377.       taken CheckIni terminates and one should wait a view moments so 
  378.       the WPS has time to update the fysical extended attribute on disk.
  379.  
  380. Notes on version 1.90:
  381.  
  382. o     This version now supports all known versions of OS/2 2.0 and 
  383.       OS/2 2.1 Beta versions uptill release level 6.498 (March '93)
  384.  
  385.  
  386. Notes on version 1.91:
  387.  
  388. o     The try-to-repair option will be called also now when the desktop 
  389.       folder doesn't contain the .CLASSINFO extented attribute at all.
  390.  
  391. o     When /C was specified, and lost objects were found and the user
  392.       chose for 'discard object', the OBJECTID was still checked and when
  393.       an error was found the program asked if a new OBJECTID should be
  394.       assigned. This has been corrected
  395.