PreviousNext
Help > API Functions > Data Queues > Complete example
Complete example

 

The PHP program does:

         connection with i5_connect

         ADDLIBLE of EASYCOMXMP with i5_command

         open the "*LIBL/DTAQ_FIFO” with i5_dtaq_prepare

         send data with i5_dtaq_send

         read data with i5_dtaq_receive

         close data queue with i5_dtaq_close

 

 

            <?php

 

 

            $user = "user";

            $pass = "pwd";

            $connect = "power8";

            $property = array (I5_OPTIONS_JOBNAME => "PHPDQ" );

 

            $TraceLvl = 4;

            $TraceFile = "CR/TRACEPHP2";

 

            $Hdlcon = i5_connect($connect, $user, $pass, $property);

 

 

            $retStartTrace = i5_start_testfile($TraceFile, $TraceLvl);

            echo 'Trace activated<br/>';

 

            i5_command("ADDLIBLE LIB(EASYCOMXMP)");

            echo 'i5_command ADDLIBLE done<br/>';

 

            $description = array("Name"=>"DATA", "Type"=>I5_TYPE_CHAR, "Length"=>"50");

                    $data = i5_dtaq_prepare("*LIBL/DTAQ_FIFO", $description);

                    if ($data == false){

                                         $erreur = i5_error();

                                         print_r ($erreur);

                    }

                   

                    $donnees = 'test PHP Aura';

                    $ret = i5_dtaq_send($data, "", $donnees);

                    if ($ret) {

                                         echo 'write done<br/>';

                    }

                    else

                    {

                                         $erreur = i5_error();

                                         print_r ($erreur);

                    }

                                        

 

                    $rec = i5_dtaq_receive($data);

                    if (is_bool($rec))

                    {

                                         $erreur = i5_error();

                                         if ($erreur[0]==14)

                                         {

                                                             echo 'Data Queue is empty';

                                         }

                                         else

                                         {

                                                             print_r($erreur);

                                         }

                    }

                    else

                    {

                                         echo 'read done<br/>';

                                         echo 'data = ' . $rec . '<br/>';

                    }

 

                    $ret = i5_dtaq_close ($data);
                    if ($ret) {
                                         echo 'DTAQ close<br/>';
                    }
                    else
                    {
                                         $erreur = i5_error();
                                         print_r ($erreur);
                    }

 

 

?>