MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » February 1998

Re: Integrated File System


  • Subject: Re: Integrated File System
  • From: wcork@xxxxxxxxx
  • Date: Tue, 3 Feb 1998 11:56:47 -0600 (CST)

fixed

>Did you need to have an IPCS and Lan Server/400, or has this functionality
>been incorporated into the base operating system?  Not that this is a
>problem, both are in the budget for this year for us, but it would be
>really nice to be able to start on this now.

Well what I am doing is using OS/400 NFS to mount to the Unix side over
TCP/IP.  That is all that is needed for what I am doing!  NFS is tricky ( I
tought so anyway since the books don't have very good examples of the TCP/IP
setting needed for NFS to work proporly) but once you have it up and running
you can mount accross systems or you can have systems mount to you.  When
you do the mounts its best to do them to the IFS system.  This is working
great for.

>Are there new opcodes in the ILE RPG for this?  Can you tell me what they
>are?

Yes!  What you are able to do now is use C code API's.  The book API for
UNIX is a great resorce for this type of coding.  What you have to do is
creat your own header file in your RPG code.  I created a file called
IFSHEADERS that I keep my header files in so that I can just copy them
inside of programs when needed.  This header file acts like the header file
inside of C programs (i.e. studio.h , ctlh.h, etc...)  Then you can call the
commands with an eval statment which works really nifty...  There is an
artical in the Midrange Computing magazine December 1997 that talking about
this tech...

>I have a ton of questions about this, thank you so much for your response.

I will be happy to give you all the information I can and help solve any
problems you might run into along the way.  Once you get going on this its
pretty simple.


Here is what my header file looks like:

 ** This procedure is to printer error codes when recieved **
Dperror           PR            10I 0 EXTPROC('perror')                 
Dconst                            *   VALUE                             

 ** This one writes a line of code inside of a file.. (Usually use Write
Instead) **
Dsprintf          PR            10I 0 EXTPROC('sprintf')                
D                                 *   VALUE                             
D                                 *   VALUE                             
D                               10I 0 VALUE OPTIONS(*NOPASS)            
D                                 *   VALUE OPTIONS(*NOPASS)            
                                                                        

 * Open Operations                                                      
 * value returned = file descriptor 0 (OK), -1 (Error)                  
                                                                        
Dopen             PR            10I 0 EXTPROC('open')                   
D                                 *   VALUE                             
D                               10I 0 VALUE                             
D                               10U 0 VALUE OPTIONS(*NOPASS)            
D                               10U 0 VALUE OPTIONS(*NOPASS)            
                                                                         
  * Read Operations                                                      
  * value returned = number of bytes read or , -1 (Error)                
                                                                         
Dread             PR            10I 0 EXTPROC('read')                   
D                               10I 0 VALUE                             
D                                 *   Value                             
D                               10U 0 VALUE                             
                                                                         
  * Write Operations                                                     
  * value returned = number of bytes Written or , -1 (Error)             
                                                                         
Dwrite            PR            10I 0 EXTPROC('write')                  
D                               10I 0 VALUE                             
D                                 *   VALUE                             
D                               10U 0 VALUE                             
                                                                        
 * Close Operations                                                     
 * value returned = 0 (OK) or , -1 (Error)                              
                                                                        
Dclose            PR            10I 0 EXTPROC('close')                  
D                               10I 0 VALUE                             
                                                                        
 * Open Directory Operation                                             
 * value returned = file descriptor 0 (OK), -1 (Error)                  
                                                                        
Dopendir          PR              *   EXTPROC('opendir')                
D                                 *   VALUE                             
                                                                        
 * Read Directory Operation                                             
 *                                                                      
                                                                        
Dreaddir          PR              *   EXTPROC('readdir')                
D                                 *   VALUE                             
                                                                        
 * Open Directory Operation                                             
 * value returned = 0 (OK) or , -1 (Error)                              
                                                                        
Dclosedir         PR            10I 0 EXTPROC('closedir')               
D                                 *   VALUE                             
                                                                        
 * Unlink a File from system... Delete File                             
 * value returned = 0 (OK) or , -1 (Error)                              
                                                                        
Dunlink           PR            10I 0 EXTPROC('unlink')                 
D                                 *   VALUE                             


There are alot of headers not in here like I said the book Unix Type Api's
is a good source...  Then inside the programs you can just call these
procedures and you have to bind your program to the Directory QC2LE for
these procedures to work.  There is a service program in there.  You can
remove the one you need.  I can remember off hand which it is but I can look
it up...

If you would like to see some of my actual working code let me know and I
will send it as well as awnser any other questions you have... You can post
the questions on here or email me personally.

Wayne Cork
Groendyke Transports Inc.
>----------
>> From: wcork@ionet.net
>> To: MIDRANGE-L@midrange.com
>> Subject: Re: Integrated File System
>> Date: Monday, February 02, 1998 3:11 PM
>> 
>> >I would like some information on using the Integrated File System (IFS)
>to
>> >access data on a connected network from an AS/400.
>> >
>> >I read an article that stated that the Lan Server/400 and an IPCS were
>> >required, but this article was several years old.  Is this still true? 
>> >
>> >Has anyone used this? Any practical advice or pointers?
>> >
>> >Kathleen Kostuck 
>> 
>> I am not sure if this is what your question is reguarding or not but I am
>> using the IFS right now to pass data between the unix system and the
>AS/400
>> system.  Using ILE you can can write programs to read information
>directly
>> from the IFS as well as creat files and store data into them.  If this is
>in
>> anyway what you are interested in doing or would just like more
>information
>> on what I am doing please let me know...
>> 
>> Wayne Cork
>> 
>> +---
>> | This is the Midrange System Mailing List!
>> | To submit a new message, send your mail to "MIDRANGE-L@midrange.com".
>> | To unsubscribe from this list send email to
>MIDRANGE-L-UNSUB@midrange.com.
>> | Questions should be directed to the list owner/operator:
>david@midrange.com
>> +---
>+---
>| This is the Midrange System Mailing List!
>| To submit a new message, send your mail to "MIDRANGE-L@midrange.com".
>| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
>| Questions should be directed to the list owner/operator: david@midrange.com
>+---
>
>

+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to "MIDRANGE-L@midrange.com".
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---






Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact