To make chkdnsrr() work, please follow these steps:
Step 1) Verify that your IBM i can resolve external addresses. From the 5250 command line:
Review the messages that appear by displaying the job log:
Page back to see the messages under the ping command. The messages should be similar to this:
These messages indicate a successful ping. If you see messages similar to these, proceed to the next step.
However, if you see something like this:
Then your IBM i is not configured to resolve external addresses. You will need to configure tcp/ip before continuing. Your Network Administrator should be able to complete this task for you.
Step 2) Find your DNS Server addresses. From the command line, as QSECOFR or a *SECOFR class user, use F4 to prompt this command:
The 'Change TCP/IP Domain (CHGTCPDMN)' menu will appear. Find the 'Domain name server:' parameter by paging down. You should find one or more Internet addresses, similar to this:
Copy down these Internet addresses exactly. Ignore any entries that say '*SAME'. These addresses are used in the next step.
Step 3) Still logged in as QSECOFR or a *SECOFR class user, use this command to enter the PASE shell:
In the PASE shell, enter this command:
If the output looks like this:
This is fine. The file is not created yet, and you can create it now. If the output shows some file contents, skip ahead to the next section to see if the file is correct. If it is not correct, you can remove it using this command:
To create the file, enter a command for each Internet address found under the Domain name server parameter. In our example, we found two addresses:
Use the cat command again to verify the file is entered correctly:
In this example, the nameserver entries exactly match the Internet address entries found in the CHGTCPDMN command. This is what we want.
Step 4) Verify that the chkdnsrr() function is working. Create this script and run it on your Zend Server instance:
This is the expected output:
Note that several of the entries are true. This is good. If the entries are all false, then chkdnsrr() is not functioning correctly.