Subroutine Compilation problem

156 views
Skip to first unread message

troyd1

unread,
Apr 23, 2013, 9:48:07 AM4/23/13
to jb...@googlegroups.com
I inherited a 3.0 jbase install and am trying to support it.  It is on a linux machine.  If I compile and catalog a subroutine, it says that it rebuilt the subroutine library ok, but the changes are ignored.  I need to change the name of the subroutine, recompile it and then change the call name in the calling program to get it to work.  Any suggestions on what to do with this?  It kind of defeats the purpose of having a subroutine of you need to change the calls all the time.  The programs recatalog fine.

Dick Thiot

unread,
Apr 24, 2013, 9:40:29 AM4/24/13
to jb...@googlegroups.com
I would suggest a couple of things.  You can try the "jshow -c yoursubname" command to make sure that the subroutine is recognized in one of the libraries.  If it is currently being called I would be surprised if this didn't return showing the lib file that the subroutine is in.  You can also try to DECATALOG the subroutine first before cataloging it.  Are you getting an error when you do your catalog?  There are a number of issues that could cause this.  Obviously, it is critical that the SUBROUTINE statement in the program have the same name as the actual subroutine name and you probably are doing that just fine.

Dick


On Tue, Apr 23, 2013 at 8:48 AM, troyd1 <tr...@mninter.net> wrote:
I inherited a 3.0 jbase install and am trying to support it.  It is on a linux machine.  If I compile and catalog a subroutine, it says that it rebuilt the subroutine library ok, but the changes are ignored.  I need to change the name of the subroutine, recompile it and then change the call name in the calling program to get it to work.  Any suggestions on what to do with this?  It kind of defeats the purpose of having a subroutine of you need to change the calls all the time.  The programs recatalog fine.

--
--
IMPORTANT: T24/Globus posts are no longer accepted on this forum.
 
To post, send email to jB...@googlegroups.com
To unsubscribe, send email to jBASE-un...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
 
---
You received this message because you are subscribed to the Google Groups "jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jbase+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

troyd1

unread,
Apr 24, 2013, 11:52:24 AM4/24/13
to jb...@googlegroups.com, dick...@gmail.com
I did not think to decatalog first.  I will give that a try.  I have worked through all my issues so far, but that is good to know.

Sorry for the double post.  The first did not show up right away and I thought I did something wrong.

troyd1

unread,
Apr 25, 2013, 3:04:32 PM4/25/13
to jb...@googlegroups.com, dick...@gmail.com
Here is more info:
Here is the output from the jshow:

jsh tmi ~ -->jshow -c W.PURCHASE.ORDER.ENTRY
Subroutine:          /jbase/lib/libroot5.so.223
                     jBC W.PURCHASE.ORDER.ENTRY version 3.4 Wed Apr 13 10:52:08
2005
                     jBC W.PURCHASE.ORDER.ENTRY source file W2
Subroutine (DUP!!):  /jbase/lib/libtmi0.so.129
                     jBC W.PURCHASE.ORDER.ENTRY version 3.4 Thu Apr 25 14:57:46
2013
                     jBC W.PURCHASE.ORDER.ENTRY source file T9DEV.BP

it will let me decatalog the T9DEV.BP version, but not the W2 version.  When I try to decatalog the W2 version, it says:

jsh tmi ~ -->DECATALOG W2 W.PURCHASE.ORDER.ENTRY
 ** Unable to decatalog object W.PURCHASE.ORDER.ENTRY **

Any suggestions? 

I have been making a duplicate copy with a new version number and then go and find all the calling programs and change them as a program does not have the cataloging problem.

Thanks in advance for any help.

Daniel Klein

unread,
Apr 26, 2013, 5:21:43 AM4/26/13
to jb...@googlegroups.com
Run these 2 commands and then attach the files 'jshow.txt' and 'ls.txt' to your reply:

jshow -a libroot5.so.223 > jshow.txt
ls -l /jbase/lib/obj > ls.txt

Dan

troyd1

unread,
Apr 26, 2013, 6:52:32 AM4/26/13
to jb...@googlegroups.com
I think I see what is going on here.  The lib for the original subroutine is owned by root.  The /jbase/lib/obj does not exist, it appears the files are in /jbase/lib, so i did the ls on that.
Is it as simple as changing the ownership and group on the libroot files?  I get concerned changing things like this because I don't want their system to end up being down.

Most of the files have jbaseadm and tmi as the owner and group.

 I am having a lot of problems trying to get a user configured correctly.  They are set up 1 user per port and you cannot log in multiple times per user.

Any suggestions or links about user setup would also be appreciated. 
jshow.txt
ls.txt

Daniel Klein

unread,
Apr 26, 2013, 8:14:03 AM4/26/13
to jb...@googlegroups.com
The '1 user per port' is because the $JBCPORTNO environment variable is set to a specific port for each user. You can remove the restriction by unsetting it but be aware that the application might be dependent on it.

As far as your subroutine libraries are concerned, it may be best to:

Make a backup
rm -rf /jbase/lib/*
rm -rf /jbase/bin/*

then recompile and re-catalog the application. Do this for each 'programfilename' :

BASIC programfilename
CATALOG programfilename

If you want to play it safe, then set $JBCDEV_BIN and $JBCDEV_LIB to alternate locations before doing the BASIC/CATALOG, then set $PATH to include $JBCDEV_BIN and $JBCOBJECTLIST to $JBCDEV_LIB, replacing the previous values. You can then test things out without affecting the 'live' environment.

Dan

Dick Thiot

unread,
Apr 27, 2013, 11:54:22 AM4/27/13
to jb...@googlegroups.com
Troy,

If you do Dan's suggestion of setting the environment variables then you don't need to do the "rm" commands until after you have everything working.  If the new directory is in the path before the old directory then it will use your newly created lib files.

Dick
Reply all
Reply to author
Forward
0 new messages