Oct 29

Vista Business Connected to IBM ‘i’ NetServer

After many months of trying to connect to the Netservers and giving up in frustration I have finally managed to work out what to do. For those others who have the same issues here is a quick guide on how I achieved it! The Netshares were perfectly accessible from XP systems and we could connect to other SMB shares on other systems, just the IBM ‘i’ gave us problems! Go figure…

First of all start a DOS session and enter Secpol.msc this should result in the following screen:

Security Policy Editor

Security Policy Editor

Once here you need to select the Local Policies/Security Options folder from the left window then select the Network Security: LAN Manager authentication option as shown here:

Select the Security Options

Select the Security Options

Now all you have to do is set it to use the Send LM & NTLM – use NTLMv2 session security if negotiated which is done by right clicking the option and selecting the properties option which will show the setting panel, use the drop down to select the correct option as described above.

Authorization Level

Authorization Level

Once you have done this sue the Apply buttons etc to make the changes before rebooting your computer. When it is back up you should be able to browse the IBM ‘i’ netshares you have defined….

Hope this helps others who like us became frustrated with the Vista – IBM ‘i’ support..

Chris…

Oct 27

JobQGenie provides customer with valuable intel during planned role swap.

JobQGenie came up with a new role the other day. We have a customer who does regular role swaps of their HA product that uses JobQGenie to ensure they can swap in a reasonable time. Due to the nature of their application, even with a planned role swap they can end up with thousands of jobs still waiting to run which have to be cleared up before they can carry out the role swap. A recent role swap was carried out with no jobs on the job queues, but the application team used the data stored by JobQGenie to determine if any jobs had ended abnormally previous to the role swap… Without JobQGenie’s filtering capability it could have taken sometime to determine if any jobs had ended abnormally delaying the availability of the system to the users.

So while the product wasn’t needed to reload the target job queues it was used effectively to provide the customer with valuable information about the state of their source system in a very succinct manner…

Chris…

Oct 26

FTP Manager V6.1 available for download

Both the product and an updated manual are now available for download from the members section of the website. The modernization of the products interfaces using the Looksoftware products has started but will not be available until later in the year. We feel it is necessary to get the product out into the community prior to the refacing due to its increased effectiveness.

The security of the FTP server has always been a bone of contention for many customers due in main to the lack of inbuilt security functions provided by the OS for the FTP services. Now FTP Manager with its new Client not only provides a very secure FTP environment for the current IBM based functions, it also provides a secure Client with easy to use functions. No more digging through pages of help to try to find the list commands or how to find out the current working directory… The new FTP client provides a very easy to use interface for non technical users.

We had to resort to using a PC based client for our FTP activities from the IBM ‘i’ which involved using the PC as an intermediary staging point, this brought us many problems where objects were transferred and stored with incorrect CCSID’s. Now with the FTP Manager Client the process is quicker and more reliable with no more CCSID issues.

You can download a fully functioning trial from our website which automatically provides a 30day no fuss license to try out the product. If you are happy with what you see you can extend the use of the product by purchasing the necessary licensing at your convenience. You have nothing to lose and installation via the IBM LICPGM commands makes the install and removal a simple exercise.

Visit our download pages and try the product today…

Chris…

Oct 25

A couple of shots of the new FTP Client

We have finished the code updates and changes to the FTP Manager product. The biggest changes have been in the FTP Client interface which to be honest was pretty clunky originally. The Security Manager part of the product hasn’t changed that much, but we have added a few changes which should make the product more user friendly such as a log viewer and better interfaces to the security programs.

As we had been working on updating the RAP product to support CCSID’s other than 37, we decided to bring the same technology into the FTP Client, originally we had simply used a conversion table of our own to carry out the ASCII to EBCID translations. The new technology is hopefully a lot smarter and now uses the iconv() functionality to bring about the conversions. I have to say ,we did struggle with the iconv() function at first with a lot of hung sessions and blank screens, even trying to use the debugger to identify the problem ended up with hung sessions. Eventually we tracked down the problem which seems to be related to the table generation and how we tried to pass it between functions? I say seems because we simply moved the table generation into the same function as we used it in and everything started to work.. We will try to go back to generating the tables in a global manner later.

The FTP Client was the biggest gainer in terms of functionality and updates, a couple of things which had to be changed were the need to always go back to the connection panel before displaying the local or remote directories. Now F7 will show the local directory and F8 will show the Remote directory from any screen as long as the connection has been made. On connection we also show the remote directory up front so you can see the contents immediately. Another problem we corrected was the use of option 3 to change the directory on either system, taking the WRKLNK functionality as the base we decided that option 5 would be the correct way to change directories as well as display the file if a file was selected.

We looked at how the PC type FTP clients worked and decided that the ability to view a remote file locally would be a nice addition. Editing a local file is also possible, however we do not do any conversions of the data to be displayed, but simply use the EDTF functionality provided by the OS. As the Client is shipped with the FTP Manager it is also tied into the security side of the product. Any activity from the FTP Server, the IBM FTP Client or the FTP Manager Client can be logged through the logging facility automatically. This is something we feel is important where data protection is required, you have full control over the process plus an accurate record of who did what and when.

Our initial reason for updating the product and preparing it for shipment was to develop our Looksoftware skills, the product will be our first attempt to modernize an application interface using the Looksoftware product suite. We feel the new look and feel will greatly enhance the products appeal plus give us the ability to provide tighter integration with other data streams and applications.

Using the IBM provided FTP client interface is worse than using the DOS FTP interface, trying to list the local and remote directories can be a real nightmare especially of you don’t use the Client a lot.. We usually resort to using a PC based solution and use the PC as an intermediary step between the originating system and the IBM ‘i’. This became a problem recently which took us hours to work our what was going wrong. We had been developing the new ASCII to EBCDIC conversion routines when we realized we had completely changed the module used for all of the FTP connectivity. We needed to get an earlier copy back just in case we needed to revert to the old method and then move forward again.
Our systems do a nightly save off to a Virtual image which is then copied out to our Linux Server. The previous evenings save had been canceled mid way due to a timing issue (we were working very late!) this left the images corrupted and unusable so we had to get the previous nights copy back to restore the files we needed. Using the PC based solution we transferred the 4GB of saved data back to the IBM ‘i’ via the PC and attached it to the Image catalog. The Virtual Optical drive refused to vary on stating the images were all corrupted and unusable! after 4 or 5 retries at transferring the data back to the IBM via the PC we took a look at the actual images in comparison to others on our second system. The CCSID on the newly transferred images was 819 where as the images that worked on the other system were 37. Changing the CCSID attribute still left the images in an un-mountable state (the catalog images would mount to the catalog but the catalog would not mount to the virtual optical drive).
FTP Manager came to the rescue, we used the new client to transfer the objects directly from the Linux system to the IBM ‘i’ system, they mounted immediately after being imported and the files were able to be restored successfully. I did try to find a way of telling the PC client we need to transfer the data as CCSID 37, but unfortunately it has no settings which would allow this? Somehow the FTP server was seeing the data coming from the PC as PC data and setting the CCSID accordingly.

We will publish more information about the full product on our website as we move things forward, but in the meantime here are a couple of screen shots of the product in action. We used the product to connect to our Linux server as well as our other IBM ‘i’ system for the trials to show the natural conversion of ASCII data into EBCDIC data when viewing file content.

This is the site list which is presented on starting up the FTP client, all information about the connection is stored by user name, this ensures the links created by one person are not viewable by others. The passwords are all stored in an encrypted form and decrypted before being sent to the remote FTP Server.

List of remote sites

List of remote sites

The next couple of images show the local and remote directories, flipping between images is achieved by pressing F7(Local) or F8 (Remote) depending on which screen is currently shown. No need to go back to the connection panel to go to the other system listing!

Remote File List

Remote File List

Local File list

Local File list

The next set of images show the ability to edit the Local file or display the Local or Remote file. Only options which are valid for the respective location will be shown. you can also display the details of Local or Remote Directories and Objects.

Edit a local file

Edit a local file

View a Remote file locally

View a Remote file locally

Display object details

Display object details

Finally we have a few shots of the logs provided by FTP Manager Client. The first is the Client log which is only shown while a session is active. The second one is of the FTP Manager Log which logs all activity carried out by the local FTP server or Clients including the FTP Manager Client.

The Client Log

The Client Log

The FTP Manager Server Log

The FTP Manager Server Log

If you be interested in seeing the product give us a call, we hope to have it available for download soon.

Chris…

Oct 17

Bringing back the old!

Our recent partnership with Looksoftware has brought a new view on some of our old products. We have been looking for an application that could demonstrate the power of the looksoftware products. Our initial thoughts were to use the in-house packaging product we use to generate our products as IBM Licensed Program Products. The product has not changed in the 12 years we have been using it and could do with a new look and feel. We used to distribute the product as Software Packaging Manager/400 many years ago but with very little success. Not many ISV’s were using the IBM Software Packaging capabilities so we retired the package from distribution and simply kept the internal version updated with the features we required. After some deliberation we then decided the base product would require too much attention before we could add a new interface to it. That would take far too long for it to be valuable to us at the present time. We then looked at our JobQGenie and Receiver Apply program products and again decided that the products did not justify a first round update using the Looksoftware.

Eventually we decided to pull the FTP Manager product out of retirement and see what we can do with it. While integration into the desktop and adding additional data streams will not feature in any redesign we do, it does have a very pressing need to be updated.

The FTP Manager product was released over 10 years ago from a need to replace the IBM ‘i’ FTP client and provide security for the Client and Server functions. Because we develop software we needed to ensure that no code could be down loaded without our knowledge or permission. The FTP server on the IBM ‘i’ has no logging feature so we needed to provide our own, plus the security was pretty dismal to say the least. We wanted to be able to stop people from getting to the FTP server from unknown origins, restrict access to set times as well as only allowing access to certain functions. These capabilities are not available in the standard IBM ‘i’ FTP functions (or AS/400 as it was when we developed it!).

IBM does provide the exit point access to allow you to allow or deny access so we built the functionality around these exit points and came out with the FTP Manager product all those years ago! None of the limitations in the IBM FTP Client or Server functions have been improved since so it is just as important today as it was then.

The first thing we had to do was bring the coding standards up to date, as we grew we developed new coding standards which allow the maintenance of the code to be far better and easier. We have also moved to modular based programming so a lot of functionality had to be moved from individual programs into bound modules. As we started to review the code and changed the structure we also found a lot of new features needed to be added so the product would be simpler to use plus provide a better base for the Looksoftware. While Looksoftware does not require you to change the underlying code we decided because we are going to relaunch the product with Looksoftware interfaces it would be beneficial to everyone.

A couple of things needed attention, firstly the product had no real SERVER keepalive, the use of the sockets keepalive setting does not ensure the server will not drop the connection (something which happened regularly during testing) so we had to come up with a solution. We had originally done this by simply issuing a NOOP to the server every time the user did anything, even local actions would cause a NOOP to be sent to the server. While this worked to a degree, it was not perfect. We needed something that would do this in the background all the time the application had an open connection. If the user was working within a directory and left the pages unchanged (eg: editing a local file) we need to ensure the connection is kept alive. The solution was pretty simple and in our minds elegant. We used the alarm() function to raise a signal, the signal processor sends the server a NOOP request keeping the link alive. When the signal is raised the alarm function dies so we had to re-issue the alarm() request each time. When the connection is dropped we simply set the alarm() signal to 0 and it no longer gets raised.

Next we looked at the view cycle, the interface was very clunky to say the least. Every time you viewed the Local or Remote directory you had to press F12 to get back to the initial page then F7 or F8 to get to the new view. I wanted to be able to simply press F7 or F8 from anywhere to immediately display the correct view. This is something that will make the interface redesign under Looksoftware a lot slicker too. After some trials and tribulations we finally came up with a new design that would support the cycle we wanted.

As people are used to the WRKLNK functionality we decided to make the FTP Client a little more like it. Now selection of a list entry using option 5 will result in a directory change or display of the object. We will probably look at taking the ENTER key as a move back one directory request at some time, but for this release we have decided the use of 5 against the previous directory marker will be enough.

One thing the product could never do was view remote files, we thought this would be a nice feature to add so we designed a new function that will retrieve the remote object and display it locally. The file is cleaned up after display so no trace is left of the transaction.

There are a lot of other features we want to add now that we have started to play with the product again. The Security Management side has yet to be reviewed for functionality and ease of use so we may find a few chnages to be made there.

The next challenge will be to design the new interface using the Looksoftware products. We have already made an initial view which we think is OK and will be using it as the base template. This took us about 5 minutes ( a lot more understanding the technology first) and requires no changes to the application, now we can start to look at each screen and where appropriate change the layout or add additional features.

Once we get a couple of the screens generated we will put them on the blog for you to see. Eventually we will publish the new version for free download and trail.

Chris…

Oct 09

Why do people do this!

There is always some A HOLE who thinks its clever to download something and not say who they really are!
We provide the software and the download for free, the least you can do is be truthful about who you are…

The following inormation has been entered into the associate DB. Name : – edward scisorhands
Address : – 123 main st
Address : –
City : – chicago
State/Province : –
Country : – UNITED STATES
Zip Code : – 60610
Telephone number : – 312-588-2300
Fax number : –
Email address : – abc1@guerrillamailblock.com

Hope you like the software.. If it doesn’t work sorry for that as well!

Chris…

Oct 09

First trial with Look Software sucessful!

We have recently teamed up with LookSoftware to use their products for Application Modernization, something which I am sure is going to be a key activity for the IBM ‘i’ community in the coming months/years.

One area which we are really keen to take a look at (no pun intended) is Web services using IBM ‘i’ data. Look Software has a LookServer product that runs on a IIS based server that allows Web Services to be exposed using the IBM ‘i’ data and screen content. The use of the screen content is something which is really interesting, we saw a demo on how it can transactionalize (not a real word) the IBM ‘i’ screens and provide some or all of the data from those screens via a Web Service!

Let’s say you had a requirement to display some data that is stored in your database, you don’t have access to the programs to bring out that data but your users regularly require the information to carry out another process. The normal method of getting the data is to sign onto the IBM ‘i’ and go through a number of screen before finding the information, writing it down and closing all of the screens before going into another application. With the Transaction recorder available in LookSoftware you can take all of those screens passing in any required data and return the data back to the user in a single request. That data can be displayed in another application or it can be exposed as a Web Service to anyone that needs it.

The initial requirement to test out the process is to set up IIS, we had a Vista 64bit install which we thought we could use, unfortunately IIS doesnt like 64bit Vista so we had to come up with a separate PC running Vista 32bit and IIS. That’s a whole other story, but I have to say Windows and 64bit is a nonsense, support in the applications supplied by ISV’s and Microsoft does not always play together as they should!

Installing the LookServer was easy and connection to the IBM ‘i’ was a breeze. We now have a web browser based interface to most of the IBM ‘i’ applications we run without any further changes. I say most because some applications that do not follow CUA guidelines cannot be rendered correctly using the web interface. Fortunately all of our products are CUA compliant due to our use of UIM which enforces CUA compliant screens and menu’s!

Our next project will be to create our first web service using the data and applications we have on the IBM ‘i’, but in the meantime we thought we would see just how cool the LookServer is.
I have an iPod touch that I obviously use for playing music etc, it comes with a WiFi connection so I thought I would see if I could connect via the LookServer to the IBM ‘i’, the iPod doesn’t come with a 5250 emulator so I thought I would give it a try and it worked immediately. I can now sign onto the IBM ‘i’ via the LookServer using my iPod touch and use the GUI interface provided by LookServer to access my programs and products. I could have set up the IBM ‘i’ graphical interface using the IBM provided tools, but this is definitely an option which works well.

This is early days for us and LookSoftware, but the initial response we have is very favorable. if you are interested in application modernization and would like us to discuss the product let us know, we will be happy to discuss the options with you and if possible show you what it can do with your applications.

Chris…

Oct 09

Strange Problem with QjoRetrieveJournalEntries API

We have been doing some additional testing on one of our products which uses the QjoRetrieveJournalEntries API and noticed a strange problem. When we ran the API against a journal that returned 100,000’s of entries we started to receive a pointer error when setting a value in a UserSpace object. After some investigation we determined the problem only occurred when we ran the QjoRetrieveJournalEntries API multiple times over the same journal receiver chain. We did a quick fix and set the offending pointer back to the start of the UserSpace it was addressing and it seemed to fix the pointer error but then we started to see garbage returned in the returned data?

Again after some investigation and lots of hair pulling we noticed something which while it was unrelated we decided to fix. The program was setting up a number of UserSpaces for the API call, first UserSpace was used to hold the input data, second was to hold the returned journal entries. The first Usersapce was where we had seen the pointer error, on setting the values for the next call to the API somehow the structure pointer had become obsolete (I say obsolete only because it nno longer pointed to where it should). This was the temporary fix, we simply reset this structure pointer back to the start of the UserSpace and it seemed to fix up the problem. But we then saw the data was corrupted.

After a full tear down of the program we noticed that a small error had been coded, when we created the UserSpace to hold the Journal Entries we had created it at 16MB which is the largest size allowed, however when we called the QjoRetrieveJournalEntries API we passed in that the UserSpace object was only 1MB in size! So we removed the temporary fix of setting the input structure UserSpace back to its original setting and just changed the size parameter passed into the API to its correct size and everything works as we expected?

My question is why would the fact that we told the API that the data return space was smaller than it really is cause this problem? At first we considered that because we have now set the UserSpace object to its correct size that it no longer called the offending code which addresses the input structure, but after further trials we found that the code was still infact called and the API didn’t have the memory addressing issue? We obviously need to do a lot more work on finding the root cause, but it may be something that we have to ask for IBM’s expert opinion on.

Let us know if you have seen similar problems and if so, how did you resolve them.

Chris…

Oct 07

PTF’s now available for JQG Version 5.1

A new set of PTF’s are now available for JobQGenie Version 5.1. The new PTFs add significant improvements to the product and its ease of use. Although some of the fixes are related to errors found in the base product many of them are enhancements built as a result of customer requests.

The PTF’s are cumulative in nature so you only need to download the latest PTF to get all of the updates. If you already have 1JG5101 installed you can install 1JG5102 and it will automatically apply the initial PTF to *PERM status.

Some of the enhancements we have delivered with these PTF’s

Recovery of Internal Job Id’s after an IPL
If jobs are on job queues and an IPL is performed the system will allocate new Internal job Identifiers to these jobs. As the jobs will have been logged when the job was loaded to the job queue we need to ensure the new Internal job Id’s are registered in the database over the old ones.

Additional Job Status Data collected
A job can have different status on the job queue such as *HELD, we have added a new collection process that checks the jobs status on the job queue as it is loaded and then when it is changed.

Reduced Messaging
In a highly volatile environment the messaging carried out by JQG can cause the message queues to fill very quickly, we have added a new flag which when set reduces many of the status messages generated by JQG.

Improved data mining for recovery
When a request to find affected data for a particular job is run, the product would look for all transactions in the entire receiver chain of the available journals. Now the process will look for the relevant journal receiver before requesting a list of affected data.

Additional filtering capabilities
We have added new fitering capabilities to allow better and easier management of the stored job data. The addition of a position to option allows the user to quickly move to predetermined positions in the db files which in turn save a lot of time especially in very active environments..

Improved error logging
While the error messaging did allow the user to determine the cause of errors it did not provide all of the information available. The new process will now provide complete error information when any error messages are logged.

New automated resubmit routines
If a system fails or a role swap occurs with jobs still sitting on the source job queues those jobs need to be reloaded to the target systems job queues. A new command has been created which will review the Database files looking for any job which has a job queue status and reload those jobs to the relevant job queues automatically.

The product continues to improve and as more customers ask for further improvements we will add those requests to the future product development process. Our intention is to deliver any improvements via the PTF process instead of waiting for a new release before bring out the new functionality. If you would like to trail the product it is available for download via the members download pages. The downloaded product will automatically generate 30 license keys on installation.

Chris…