I have a "recipe" for deploying Java JRE with the "Java Quick Starter" service removed. This recipe requires me to insert, using a transform of course, a row in the InstallExecuteSequence table using Orca. The row I usually insert is:

ForceUninstallJQS NOT Installed 3184

I use the sequence number 3184 because it's the last available sequence number before InstallFinalize.

However, as I attempted to do this to the very latest Java JRE release, 6u18, I noticed that 3184 was in use. In other words, there is no longer an available sequence number between the InstallJava sequence and the InstallFinalize sequence. There are available numbers earlier in the sequence, but I'm not sure "how far back" I can insert the action to uninstall JQS.

Is it safe to edit the sequence numbers to make room for my little insertion, provided I keep things in the same sequence?

If not, what do you recommend I do?

Cheers,
Rickard
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
3183 will do! It is, after all, just a sequence for the installer engine to use to schedule the actions when it's compiling its internal script.

BTW, would it not be neater to condition-out the component which installs JQS in the first place? Use an impossible-to-meet condition: I normally go for '0=1'.
Answered 02/22/2010 by: VBScab
Red Belt

Please log in to comment
0
So having more than one entry with the same sequence number is fine?

Simply conditioning-out the install of JQS would be preferable, but I can't seem to find it anywhere in the sequence.
Answered 02/22/2010 by: Rickard
Senior Yellow Belt

Please log in to comment
0
No, sequence numbers need to be unique. Just make it one less than that of the sequence number of the last action (probably InstallFinalize).
Answered 02/22/2010 by: VBScab
Red Belt

Please log in to comment
0
Yes, but the previous sequence number aren't free. I took a screenshot to illustrate what I mean:

http://rickardandersson.com/drop/orca_java.png
Answered 02/22/2010 by: Rickard
Senior Yellow Belt

Please log in to comment
0
I seem to remember this happening within Wise Package Studio when I used the up/down arrows to move actions around within the InstallExecuteSequence, it put them numerically sequential all right next to each other. I ended up restoring to one of my backups and just editing the sequence number.

For your case, apart from changing every sequence number after 3184 would be the only way I'd see to do it. This is precisely why the defaults for actions are at least 10 apart sequentially.

Is there any reason you're not just editing the following registry key in your transform?

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\JavaQuickStarterService
DWORD: Start
Value: 4

That will set the service to "disabled" status. Problem fixed forever.
Answered 02/22/2010 by: elgwhoppo
Senior Purple Belt

Please log in to comment
0
Ok, then I think I'll just edit the sequence numbers after 3184 for now.

I guess disabling the service would work, but I'm not sure how to do that. Also, wouldn't I have the same problem there?
Answered 02/23/2010 by: Rickard
Senior Yellow Belt

Please log in to comment
0
This is an section of a larger script I wrote to fix Ice Errors so you might need to jig it around but it resquences the sequence tables:



Const msiOpenDatabaseModeTransact = 1

Dim database1 : Set database1 = installer.OpenDatabase("W:\Projects\XP\32\HYSY06_9975_00A\HYSY06_9975_00A.MSI", msiOpenDatabaseModeTransact)

REM ******************************************************************************************
REM ******************************************************************************************
REM * Fix ICE82 Duplicate sequence numbers
REM ******************************************************************************************
REM ******************************************************************************************
FixSequence("AdvtExecuteSequence")
FixSequence("AdvtUISequence")
FixSequence("InstallExecuteSequence")
FixSequence("InstallUISequence")
FixSequence("AdminExecuteSequence")
FixSequence("AdminUISequence")


SUB FixSequence(TableName)
DIM Sequence,SequenceView,SequenceRecord

SET SequenceView = database1.OpenView("Select * FROM `"+TableName+"` ORDER BY `Sequence`")
SequenceView.Execute
Sequence=10
DO
SET SequenceRecord=SequenceView.Fetch
IF SequenceRecord is Nothing Then Exit Do
IF SequenceRecord.IntegerData(3)>0 THEN
SequenceRecord.IntegerData(3)=Sequence
SequenceView.Modify 4,SequenceRecord
Sequence=Sequence+10
END IF
LOOP
database1.Commit
END SUB

Answered 02/23/2010 by: t_claydon
Senior Yellow Belt

Please log in to comment
0
Thanks for the script, but I'm not sure this is something I want to do. I'm just trying to make a simple transform for the stock Java 1.6u18 MSI (the screenshot is from that MSI). Resequencing the whole table would lead to a much larger transform.
Answered 02/23/2010 by: Rickard
Senior Yellow Belt

Please log in to comment
0
I seem to remember this happening within Wise Package StudioIt does the same when you cut-and-paste. Sometimes. That bug is yet another which has been around since 5.6 (the first version I began to use in earnest) and was reported then. Needless to say, it's still present.
Answered 02/23/2010 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity