IBM i Debugging Networking issues

This is just a starting article.  I plan to add more ways of debugging networking issues as I learn more:

5250 Commands for debugging networking on the IBM i

QSYS/PING RMTSYS(example.com)
QSYS/TRACEROUTE RMTSYS(example.com)
QSYS/NETSTAT

or you could download Perzl binaries and run various AIX/Unix tools for networking.

NetCat http://www.perzl.org/aix/index.php?n=main.netcat
Nmap http://www.perzl.org/aix/index.php?n=main.nmap

openssl s_client -connect example.com:443

wget http://www.oss4aix.org/download/RPMS/netcat/netcat-1.10-2.aix5.1.ppc.rpm
rpm –ignoreos –ignorearch –nodeps –replacepkgs -hUv netcat-1.10-2.aix5.1.ppc.rpm

group system does not exist - using root
netcat                      ##################################################
Listen on a server socket :
$ netcat -l -p 45678
In a new terminal session connect to the local server socket from client
$ netcat 127.0.0.1 45678

Send a message to the server

$ netcat 127.0.0.1 45678 
Hello Server this is the client
On the server we should see :
$ netcat -l 45678
Hello Server this is the client

ctrl+c twice to break out of the connection

OSI Networking Layers
osi

JDBC JT400 setting to get CrUD and Show SQL features added in Netbeans with IBM DB2 for i

I finally figured out the missing connection property needed so that Netbeans will allow you to add, edit, and delete rows with inline editors and selected rows.  In addition to showing SQL Scripts for Create,Insert,Delete and Update.  It is the extended metadata property which is by default set to false and needs to be set to true.  I found this out by looking the jdbc properties at http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzahh/jdbcproperties.htm and looking for properties effecting read only status, which is why those features were blocked on Netbeans.

In your connection properties add

extended metadata=true

by right clicking your connection in the database panel of netbeans while disconnected and going to properties

Screen Shot 2016-08-21 at 5.45.29 PM.png

Click the ellipses …) next to connection properties
Screen Shot 2016-08-21 at 5.45.53 PM.png

Click under the property column and type extended metadata.  Click under Value and type true

Screen Shot 2016-08-21 at 5.46.28 PM.png

Now run a SELECT statement and you’ll be able to Create, Update and Delete records by using the icons above the result set or by right clicking the result set area and using the context menu.  Which also had the Show SQL Scripts for CrUD.

Screen Shot 2016-08-21 at 5.28.59 PM.png

DB2 for i in the Cloud – Connecting to PUB400 via JDBC in Netbeans

1.Sign up for an account at http://pub400.com/signup.html

2. Download and extract jtopen which contains lib/jt400.jar driver for connecting to an IBM i http://jt400.sourceforge.net/

3. Download and install Netbeans https://netbeans.org/ .  I do the PHP bundle, but i believe they all have the Database module.

4. Go into the “services” tab under database and right click the Drivers folder and click “New Driver”Screen Shot 2016-08-20 at 7.30.57 PM.png

Find where you extracted JT400 and select lib/jt400.jar

Screen Shot 2016-08-20 at 7.32.19 PM.png

Press the “Find” button so it can find the AS400JDBCDriver class in the jar file and give the driver a name like “JT400 JDBC Driver”

Screen Shot 2016-08-20 at 7.34.55 PM.png

Right click the driver and click “connect using” Screen Shot 2016-08-20 at 7.36.33 PM.png

Fill out the connection wizard with your information given to you from PUB400.com

User Name: <Your username for PUB400>
Password: <Your password for PUB400>
JDBC URL: jdbc:as400://pub400.com/{replace curly bracket and this with your schema name}

Screen Shot 2016-08-20 at 7.09.37 PM.png

After clicking next, Select your Schema

Screen Shot 2016-08-20 at 7.10.21 PM.png

Give the connection a name

Screen Shot 2016-08-20 at 7.10.38 PM.png

Now you can connect to the DB2 for i in the cloud by right clicking the connection and pressing connect

Screen Shot 2016-08-20 at 7.46.26 PM.png

Now you have an easy to get to database connection to a sandbox DB2 for i!  Time to play with the temporal table support and other new enhancements for DB2!

Screen Shot 2016-08-20 at 7.48.05 PM.png

After connecting, your connection properties should show what settings are being used on the connection and even what version of the DB2.  In this case the server is on V7R2m0 :

Screen Shot 2016-08-20 at 7.13.29 PM.png

Step2 add CrUD features by modifying the connection property

https://godzillai5.wordpress.com/2016/08/21/jdbc-jt400-setting-to-get-crud-and-show-sql-features-added-in-netbeans-with-ibm-db2-for-i/

 

 

Whats happening in #IBMiOSS today!

Here’s what’s cooking in the OSS world of IBM i.

Relic Package Manager for RPG

The Relic Package Manager for RPG is being worked on at https://github.com/Club-Seiden/RelicPackageManager by Liam. He’s planning to have a website similar to https://packagist.org/ for RPG packages. Please get the word out about the Relic package manager as its only useful if people are collaborating and using it to share their code like others are in the OSS world. There’s documentation on it at https://github.com/Club-Seiden/RelicPackageManager/wiki.

We’re two groups the IBM i OSS in ILE, and OSS in IBM i PASE/AIX

The ILE group are RPG / CL / Cobol etc… programmers who want to dive into sharing their code like the rest of languages do (PHP, Ruby, Python on github).  The PASE/AIX group are programmers versed in Linux like environments who want OSS tools written in C/C++ for unix systems and we want these tools on our IBM i.  Michael Perzl has a lot of these tools compiled and for use at http://www.perzl.org/aix/ , but we can’t rely on one man to compile all these tools so there’s developers who are looking into using GCC compiler to compile their own OSS programs from source on IBM i AIX/PASE.  Which requires much knowledge of the PowerPC, GCC compiler, AIX, RPM,etc…

Aggregating IBMiOSS content and finding this information

People are wondering how best to get and aggregate content. Might be time to brush up on your google searching skills https://www.google.com/advanced_search or get active in Ryver https://ibmioss.ryver.com/ or the gitter channel https://gitter.im/Club-Seiden/IBMiOSS_Public . Which offer daily asynchronous chat and conversations. I recommended content be aggregated in blogs, as I’ve found Alan Seiden and Chris Hird’s blogs to be very helpful in the past.

Compiling PHP 7 on IBM i from source

I’ve created an article on how to compile PHP 7 on I.  I have to thank the many people on  the Gitter channel that helped me accomplish this.  You can find out how to compile PHP 7 on i  here: https://godzillai5.wordpress.com/2016/06/21/compiling-php7-from-source-on-ibmi-pase-aix/

Inviting people who are brand new to IBM i OSS

People need to be educated in this new world of Git and OSS. A Git/OSS 101 class for people who are brand new to the concepts.  For learning Git this website was recommended https://try.github.io/levels/1/challenges/1 . I recommended Maybe someone should do a intro to contributing to Open Source RPG at Common next year? Intro to Github, Intro to Relic, etc…

Watch-out for Liam’s YouTube series on setting up Git on their IBM i!

Pros and Cons of IBM i w/ PASE AIX on Power and Linux on Power

This is not an exhaustive list but some thoughts on the pros and cons of running OSS in different environments found on Power Processors.

IBM i and AIX both baked into the OS Kernel on Power CPU
PROS CONS
No separate OS IBM has to update the kernel code to latest AIX, so you might be delayed getting the latest AIX
OSS has been ported over by Michael Perzl, bullfreeware, and aixtoolbox OSS is typically developed for Linux and Intel (Little Endian) first
OSS packages are not available to download via YUM or APT-GET
Forks of processes are slower
IBM I and a Separate Linux LPAR on Power CPU
PROS CONS
Another OS to patch and upgrade
A purchased DB2 Connect license is required to use the PHP Extension IBM_DB2 to talk with the IBM i.  Or you have to use a less feature rich ODBC connection
OSS is typically developed for Linux and Intel (Little  Endian) first Compiling OSS from source might have to be modified to work on little endian Power CPU
OSS packages are available to download via YUM or APT-GET? Have to carve up a Separate LPAR allocations of disk, memory, cpu
There is free versions of Linux but most enterprises will probably go for paying a license to RHEL or SUSE for support and stable releases

Compiling #IBM_DB2 #PHP #Extension Module from source on #IBMi PASE (#AIX) OS

Here’s my quick guide on compiling IBM_DB2 PHP extension module (IBM_DB2.so) from source.  The version i was working with was 1.9.9.  I’m still having some troubles with this extension so i’ll update this guide when I figure out why i’m getting this runtime error with the extension:

#after loading ibm_db2.so
php -v

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/phpdave7/lib/php/extensions/no-debug-non-zts-20160303/ibm_db2.so’ – rtld: 0712-001 Symbol __cxa_finalize was referenced
from module /usr/local/phpdave7/lib/php/extensions/no-debug-non-zts-20160303/ibm_db2.so(), but a runtime definition
of the symbol was not found.

Compiling latest #NGINX from source on #IBMi PASE (#AIX) and running #PHP through Nginx instead of Apache

Below is my guide to setup Nginx on IBM i PASE environment and have it work with PHP.  Let me know if you have any problems.  If you don’t already have PHP installed and compiled from source you can check my guide here: https://godzillai5.wordpress.com/2016/06/21/compiling-php7-from-source-on-ibmi-pase-aix/ .