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