<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=SirLib_problem_resolution</id>
	<title>SirLib problem resolution - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=SirLib_problem_resolution"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;action=history"/>
	<updated>2026-05-10T22:11:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;diff=81432&amp;oldid=prev</id>
		<title>JAL: minor cleanup</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;diff=81432&amp;oldid=prev"/>
		<updated>2015-10-28T00:08:05Z</updated>

		<summary type="html">&lt;p&gt;minor cleanup&lt;/p&gt;
&lt;a href=&quot;https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;amp;diff=81432&amp;amp;oldid=81212&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;diff=81212&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;diff=81212&amp;oldid=prev"/>
		<updated>2015-10-19T21:37:24Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:37, 19 October 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;diff=81211&amp;oldid=prev</id>
		<title>JAL at 23:18, 16 October 2015</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirLib_problem_resolution&amp;diff=81211&amp;oldid=prev"/>
		<updated>2015-10-16T23:18:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--Page automatically generated by CMSTOWIK EXEC and will be&lt;br /&gt;
** automatically replaced ** -- any manual edits will be lost.&lt;br /&gt;
You&amp;#039;ve been warned.   ..  (Page built by JAL at the SIRIUS VM; file: FUNPGNEW SYSUT2) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Page name: SirLib problem resolution--&amp;gt;&lt;br /&gt;
This page reviews corrective actions for a variety of common error conditions.&lt;br /&gt;
&lt;br /&gt;
==SirLib can&amp;#039;t access file==&lt;br /&gt;
Make sure that each file managed by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; is allocated via SUBSYSMGMT to the &amp;lt;code&amp;gt;SIRLIB&amp;lt;/code&amp;gt; application subsystem, or that an update password exists for the file.&lt;br /&gt;
&lt;br /&gt;
==Cutover failed==&lt;br /&gt;
Cutover is a complex function involving 5 steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Apply updates. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete update procedures. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete project names. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Delete Base procedures. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ReStamp procedures. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Only the first and last options may be bypassed.&lt;br /&gt;
Each of the five options is executed in the above order.&lt;br /&gt;
If a step fails it can be identified by the error message and by the&lt;br /&gt;
date/time fields associated with it not having been updated when control&lt;br /&gt;
returns to the Cutover screen.&lt;br /&gt;
&lt;br /&gt;
The first step applies update procedures to the target managed file.&lt;br /&gt;
This process is exactly the activity performed from the Reconfiguration&lt;br /&gt;
option, and may be bypassed if the user has just run a Reconfiguration.&lt;br /&gt;
If the first step is executed (recommended always)&lt;br /&gt;
and fails, then the destination procedure file does not have&lt;br /&gt;
all existing changes applied to it.&lt;br /&gt;
&lt;br /&gt;
This change application process &amp;lt;i&amp;gt;does not&amp;lt;/i&amp;gt; apply changes which&lt;br /&gt;
are commented-out in the control procedure, and it cannot know if all&lt;br /&gt;
update procedures that are supposed to be in the FixFile are indeed there.&lt;br /&gt;
Most of the error messages occurring at this step will indicate that some&lt;br /&gt;
user or apsy is locking a procedure that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; wants to update.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;See the ReConfiguration section for details on this.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each of the remaining four steps is an updating transaction requiring&lt;br /&gt;
update privileges to the update procedure file or the target&lt;br /&gt;
procedure file.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
The first thing to check in case of cutover failure is that these files&lt;br /&gt;
are allocated to the online region and to the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; APSY, and that privilege settings are high enough to allow the updating of permanent procedures.&lt;br /&gt;
&lt;br /&gt;
If cutover continues to fail, either turn on all messages in the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; ASPY definition, or run &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; in &amp;lt;var&amp;gt;TEST DEBUG&amp;lt;/var&amp;gt; mode, and call the&lt;br /&gt;
specific problem in to your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; Administrator or to [[Contacting Rocket Software Technical Support|Technical Support]]. &lt;br /&gt;
&lt;br /&gt;
Cutover may be run as many times as necessary to accomplish the file clean up.&lt;br /&gt;
&lt;br /&gt;
==Missing base procedure==&lt;br /&gt;
If a Base procedure of a file once existed and has since been deleted,&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; will see there is no Base, copy the existing executable&lt;br /&gt;
procedure into a Base version and then attempt to apply changes to it.&lt;br /&gt;
The user will get an error saying that changes (from the first update&lt;br /&gt;
procedure most likely) will not apply to the procedure.&lt;br /&gt;
The error message will specify the sequence number where the problem occurred.&lt;br /&gt;
The user will be able to edit both the procedure and the update&lt;br /&gt;
procedure and see that the new code in the update procedure being&lt;br /&gt;
applied already exists in the Base procedure.&lt;br /&gt;
&lt;br /&gt;
A Base version of a procedure is created the first time a change to the&lt;br /&gt;
procedure is detected during a reconfiguration.&lt;br /&gt;
If a Base procedure is not present when a re-configuration is attempted,&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; assumes this is the first time managed updates have been applied&lt;br /&gt;
to the procedure, and a new &amp;lt;code&amp;gt;BASE.&amp;lt;/code&amp;gt; procedure is created.&lt;br /&gt;
&lt;br /&gt;
The Base procedure is more important to a managed system than the&lt;br /&gt;
actual executable procedure.&lt;br /&gt;
Base procedures with update procedures applied are used to rebuild the&lt;br /&gt;
executable procedures to any previous configuration.&lt;br /&gt;
&lt;br /&gt;
If a BAase procedure is accidentally deleted while there are still&lt;br /&gt;
changes that need to be applied to that procedure, the Base procedure&lt;br /&gt;
&amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; be restored for those changes to apply.&lt;br /&gt;
Each Base procedure must be in the same file as the executable procedure&lt;br /&gt;
that it matches.&lt;br /&gt;
&lt;br /&gt;
==Missing SEQ procedure==&lt;br /&gt;
Sequenced versions of procedures are generated during execution of the&lt;br /&gt;
&amp;lt;var&amp;gt;Q&amp;lt;/var&amp;gt; command.&lt;br /&gt;
The &amp;lt;var&amp;gt;SEQ.&amp;lt;/var&amp;gt; version created must remain unchanged while the&lt;br /&gt;
unsequenced (working) copy is being updated.&lt;br /&gt;
If the &amp;lt;var&amp;gt;SEQ.&amp;lt;/var&amp;gt; version is altered, the update procedure resulting from the&lt;br /&gt;
&amp;lt;var&amp;gt;XCOMPARE&amp;lt;/var&amp;gt; will not apply correctly to the BASE procedure, and the entire&lt;br /&gt;
reconfiguration will fail.&lt;br /&gt;
&lt;br /&gt;
If an &amp;lt;var&amp;gt;SEQ.&amp;lt;/var&amp;gt; procedure is deleted or is suspected of being altered, the&lt;br /&gt;
programmer needs to generate a new &amp;lt;var&amp;gt;SEQ.&amp;lt;/var&amp;gt; version via the following steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Verify that no unmanaged changes have occurred against the procedure&lt;br /&gt;
since the working version was generated.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If managed changes have occurred against the procedure since the&lt;br /&gt;
original sequenced version was generated, comment them&lt;br /&gt;
out in the &amp;lt;code&amp;gt;CONTROL&amp;lt;/code&amp;gt; procedure via the &amp;lt;b&amp;gt;CHANGES&amp;lt;/b&amp;gt; option in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; and&lt;br /&gt;
regenerate a new &amp;lt;var&amp;gt;SEQ&amp;lt;/var&amp;gt; version that includes those changes, by executing a &amp;lt;var&amp;gt;Q&amp;lt;/var&amp;gt; command.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Regenerate the sequenced and unsequenced procedures from the&lt;br /&gt;
original using the &amp;lt;var&amp;gt;Q&amp;lt;/var&amp;gt; command, sending the unsequenced version to a temp file, which can be deleted.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deleted update procedure==&lt;br /&gt;
Update procedures can be regenerated as many times as required, as long&lt;br /&gt;
as the original sequenced and unsequenced versions of the procedure&lt;br /&gt;
still exist.&lt;br /&gt;
&lt;br /&gt;
==Reconfiguration failed==&lt;br /&gt;
Usually Reconfiguration failures are due to an APSY or USER holding the&lt;br /&gt;
target file open.&lt;br /&gt;
Reconfiguration requires exclusive access to the target file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; does not check that a specific APSY is locking a file, as it&lt;br /&gt;
makes no assumptions about how many APSYs might be running out of that file.&lt;br /&gt;
Therefore, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; always presents this error upon its inability to&lt;br /&gt;
delete or rename some procedure.&lt;br /&gt;
Reconfiguration can be restarted when the locking USER or APSY releases&lt;br /&gt;
the file.&lt;br /&gt;
&lt;br /&gt;
If an invalid update procedure has been built and reconfiguration&lt;br /&gt;
fails, a message is displayed indicating the update procedure at fault&lt;br /&gt;
and the sequence number where the mismatch occurred.&lt;br /&gt;
Reconfiguration will also fail in the case where two or more&lt;br /&gt;
programmers have attempted to change the same line number from working&lt;br /&gt;
and SEQ procedures generated at the same time.&lt;br /&gt;
In &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; this is known as a &amp;quot;collision&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Collisions==&lt;br /&gt;
Update collisions occur during ReConfiguration when two update&lt;br /&gt;
procedures attempt to change the same line or section of a procedure,&lt;br /&gt;
both referring to the same physical location in the procedure by the&lt;br /&gt;
same sequence number(s).&lt;br /&gt;
This can occur when more than one programmer generates sequenced and&lt;br /&gt;
unsequenced copies of the same procedure in a time frame that doesn&amp;#039;t&lt;br /&gt;
allow the second programmer&amp;#039;s copy to include changes from the first&lt;br /&gt;
programmer&amp;#039;s update procedure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Read the section under the Q command for an explanation of how sequence numbering works.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of collisions, the first change gets applied by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt;, and&lt;br /&gt;
the second change contains commands that try to find sequence numbers&lt;br /&gt;
that are now altered by the first change.&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; applies update procedures to BASE procedures, it sorts all&lt;br /&gt;
changes for a procedure into sequence and version number order.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; finds within a section of code two changes that both want to be&lt;br /&gt;
the same version it warns the user and stops processing.&lt;br /&gt;
&lt;br /&gt;
There are many ways to handle collisions and the best is usually&lt;br /&gt;
determined by the programmers.&lt;br /&gt;
A simple approach is to delete all but the most complex of the conflicting&lt;br /&gt;
update procedures and to incorporate the other changes into the working&lt;br /&gt;
version of the procedure that was used to generate the one update&lt;br /&gt;
procedure kept.&lt;br /&gt;
That update procedure is then regenerated.&lt;br /&gt;
In some cases the working and SEQ version of the most complex update&lt;br /&gt;
procedure will have been deleted.&lt;br /&gt;
In this case it is best to regenerate the conflicting update procedure&lt;br /&gt;
using an SEQ procedure that contains the other change(s).&lt;br /&gt;
&lt;br /&gt;
To avoid difficult resolution of collisions, working and SEQ procedures&lt;br /&gt;
should never be deleted until the programmer has verified that the&lt;br /&gt;
changes apply and integrate with all other changes.&lt;br /&gt;
&lt;br /&gt;
==Production fixes==&lt;br /&gt;
Sometimes it will be necessary to make a quick change to a production&lt;br /&gt;
procedure which has already been updated in development.&lt;br /&gt;
In &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirLib&amp;lt;/var&amp;gt; developers should never copy production procedures back to&lt;br /&gt;
development in order to make these fixes.&lt;br /&gt;
&lt;br /&gt;
In the production environment identify which changes have been applied&lt;br /&gt;
to the procedure which requires the fix.&lt;br /&gt;
This can be done by browsing the procedure to see the change stamps, or if&lt;br /&gt;
procedure stamping is turned off for the target procedure, by running a&lt;br /&gt;
status report for the file to identify the last Reconfigure date and time,&lt;br /&gt;
and the projects which were then applied.&lt;br /&gt;
&lt;br /&gt;
In the development environment, ReConfigure the file to its current&lt;br /&gt;
production state.&lt;br /&gt;
Execute a &amp;lt;var&amp;gt;Q&amp;lt;/var&amp;gt; command to generate &amp;lt;var&amp;gt;SEQ&amp;lt;/var&amp;gt; and working versions of the procedure.&lt;br /&gt;
Make the production fix, generate an update procedure and distribute the&lt;br /&gt;
new update procedure to production, applying the update procedure there&lt;br /&gt;
via a ReConfigure.&lt;br /&gt;
&lt;br /&gt;
In the development environment, ReConfigure the file to include the new&lt;br /&gt;
fix and all other new development update procedures.&lt;br /&gt;
Handle collisions as indicated earlier in this section.&lt;br /&gt;
Notify all developers working on the fixed procedure to regenerate their&lt;br /&gt;
&amp;lt;var&amp;gt;SEQ&amp;lt;/var&amp;gt; and working procedures to include the production fix.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template: SirLib topic list}}&lt;br /&gt;
&lt;br /&gt;
[[Category: SirLib]]&lt;/div&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
</feed>