MAIL USING PL/SQL PROCEDURE TCP CONNECTION ERROR

I was trying to send an e-mail using the demo-mail helper package which uses UTL_SMTP package and on execution, it gives the following TCP Connection error. Is it some something to do with mail configuration?
This is the sample code I was trying to run.
demo_mail.mail( sender => 'Me <[email protected]>',
recipients => 'Someone <[email protected]>, ' ||
'"Another one" <[email protected]>',
subject => 'Test', message => 'Hi! This is a test.');
And this is the error I am getting.
class oracle/plsql/net/TCPConnection does not exist
at "SYS.UTL_TCP", line 537
at "SYS.UTL_TCP", line 199
at "SYS.UTL_SMTP", line 102
at "SYS.UTL_SMTP", line 121
at "VNARAYA.DEMO_MAIL", line 159
at "VNARAYA.DEMO_MAIL", line 119
at "VNARAYA.DEMO_MAIL", line 105
at "VNARAYA.SEND_MAIL", line 2
at line 1

The Java library needed by UTL_TCP is not created properly. You may just run $ORACLE_HOME/rdbms/admin/initplsj.sql as SYS to install it:
cd $ORACLE_HOME/rdbms/admin
sqlplus sys/<sys-password> @initplsj.sql

Similar Messages

  • Retrive perticular mail using PL-SQL procedure

    Hi all,
    Anyone knows, how to retrive mails from outlook using PL-SQL procedure?
    Thanks and Regards
    Nilay

    The Java library needed by UTL_TCP is not created properly. You may just run $ORACLE_HOME/rdbms/admin/initplsj.sql as SYS to install it:
    cd $ORACLE_HOME/rdbms/admin
    sqlplus sys/<sys-password> @initplsj.sql

  • How can i return object from oracle in my java code using pl/sql procedure?

    How can i return object from oracle in my java code using pl/sql procedure?
    And How can i returned varios rows fron a pl/sql store procedure
    please send me a example....
    Thank you
    null

    yes, i do
    But i can't run this examples...
    my problem is that i want recive a object from a PL/SQL
    //procedure callObject(miObj out MyObject)
    in my java code
    public static EmployeeObj callObject(Connection lv_con,
    String pv_idEmp)
    EmployeeObj ret = new EmployeeObj();
    try
    CallableStatement cstmt =
    lv_con.prepareCall("{call admin.callObject(?)}");
    cstmt.registerOutParameter(1, OracleTypes.STRUCT); // line ocurr wrong
    //registerOutParameter(int parameterIndex, int sqlType,String sql_name)
    cstmt.execute();
    ret = (EmployeeObj) cstmt.getObject(1);
    }//try
    catch (SQLException ex)
    System.out.println("error SQL");
    System.out.println ("\n*** SQLException caught ***\n");
    while (ex != null)
    System.out.println ("SQLState: " + ex.getSQLState ());
    System.out.println ("Message: " + ex.getMessage ());
    System.out.println ("Vendor: " + ex.getErrorCode ());
    ex = ex.getNextException ();
    System.out.println ("");
    catch (java.lang.Exception ex)
    System.out.println("error Lenguaje");
    return ret;
    Do you have any idea?

  • Display data in log file using PL/SQL procedure

    Just as srw.message is used in Oracle RDF Reports to display data in log file in Oracle Apps, similarly how it is possible to display data in log file using PL/SQL procedure?
    Please also mention the syntax too.

    Pl post details of OS, database and EBS versions.
    You will need to invoke the seeded FND_LOG procedure - see previous discussions on this topic
    Enable debug for pl/sql
    https://forums.oracle.com/forums/search.jspa?threadID=&q=FND_LOG&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    HTH
    Srini

  • How to send e-mail using PL/SQL

    I need to send e-mail using PL/SQL. Is it possible?
    Thanks in advance,
    Agnaldo

    Yes. Use the UTL_SMTP package

  • How to insert BLOB datatype image using PL/SQL Procedure and SQL Loader

    Hi,
    How to insert an image into database using PL/SQL Procedure and also how to insert using SQL Loader. Please help by giving sample code and process description.
    Thanks,
    Vijay V

    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:232814159006

  • Please help. Using Ipad 2 . No connection error iPad 2 Wi-Fi, iOS 7

    Please help. Using Ipad 2 . No connection error
    iPad 2 Wi-Fi, iOS 7
    how to start back my i pad

    Please see: iOS: Restore errors 4005, 4013, and 4014
    Regards,
    Steve

  • Content Server SQL Server 2000 Connection Error (very annoying)

    All of the diagnostic tests are failing because of SQLServer connection error (see below for diagnosticTests.jsp output).
    I checked database.content.properties file, all connection information is correct. The portal is running on the same SQL server. So I know that the SQL server is running just fine. I just could not isolate the problem. Can you help?------------------------------------------------------------------------
    Content Server DB Connection FAIL
    Settings JDBC Driver: com.plumtree.jdbc.sqlserver.SQLServerDriver JDBC URL: jdbc:plumtree:sqlserver://OXO-SRV03:1433;DatabaseName=ptcsdb DB Driver: com.plumtree.jdbc.sqlserver.SQLServerDriver DB Vendor: com.plumtree.content.rdbms.impl.VendorSqlServer User Name: ptcsdbuser Possible Resolution Check the Content DB JDBC Server, JDBC Port, JDBC User, JDBC Password, and JDBC Databse settings in the content.properties file. Error Details Exception Message: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect com.plumtree.jdbc.base.BaseSQLException: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect at com.plumtree.jdbc.base.BaseExceptions.createException(Unknown Source) at com.plumtree.jdbc.base.BaseExceptions.getException(Unknown Source) at com.plumtree.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) at com.plumtree.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.plumtree.jdbc.base.BaseConnection.connect(Unknown Source) at com.plumtree.jdbc.base.BaseConnectionStartup.run(Unknown Source) Content DB Table CREATE and DELETE FAIL
    Settings Unable to get a connection to the content server DB Possible Resolution Check the Content DB JDBC Server, JDBC Port, JDBC User, JDBC Password, and JDBC Databse settings in the content.properties file. Also ensure that the Content Database Server is running. Error Details Exception Message: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect com.plumtree.jdbc.base.BaseSQLException: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect at com.plumtree.jdbc.base.BaseExceptions.createException(Unknown Source) at com.plumtree.jdbc.base.BaseExceptions.getException(Unknown Source) at com.plumtree.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) at com.plumtree.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.plumtree.jdbc.base.BaseConnection.connect(Unknown Source) at com.plumtree.jdbc.base.BaseConnectionStartup.run(Unknown Source) Content DB Update and Query FAIL
    Settings Unable to get a connection to the Content DB Table Name: PCSSYSTEM Column Name: CREATEDVERSION Possible Resolution Check the Content DB JDBC Server, JDBC Port, JDBC User, JDBC Password, and JDBC Databse settings in the content.properties file. Also ensure that the Content Database Server is running. Error Details Exception Message: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect com.plumtree.jdbc.base.BaseSQLException: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect at com.plumtree.jdbc.base.BaseExceptions.createException(Unknown Source) at com.plumtree.jdbc.base.BaseExceptions.getException(Unknown Source) at com.plumtree.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) at com.plumtree.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.plumtree.jdbc.base.BaseConnection.connect(Unknown Source) at com.plumtree.jdbc.base.BaseConnectionStartup.run(Unknown Source) Portal DB Connection FAIL
    Settings JDBC Driver: com.plumtree.jdbc.sqlserver.SQLServerDriver JDBC URL: jdbc:plumtree:sqlserver://OXO-SRV03:1433;DatabaseName=plumdb DB Driver: com.plumtree.jdbc.sqlserver.SQLServerDriver DB Vendor: com.plumtree.content.rdbms.impl.VendorSqlServer User Name: plumdbuser Possible Resolution Check the Portal DB JDBC Server, JDBC Port, JDBC User, JDBC Password, and JDBC Databse settings in the content.properties file. Error Details Exception Message: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect com.plumtree.jdbc.base.BaseSQLException: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect at com.plumtree.jdbc.base.BaseExceptions.createException(Unknown Source) at com.plumtree.jdbc.base.BaseExceptions.getException(Unknown Source) at com.plumtree.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) at com.plumtree.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.plumtree.jdbc.base.BaseConnection.connect(Unknown Source) at com.plumtree.jdbc.base.BaseConnectionStartup.run(Unknown Source) Portal DB Query FAIL
    Settings Unable to get a connection to the Portal DB Table Name: PTUSERS Column Name: OWNERID Possible Resolution Check the Portal DB JDBC Server, JDBC Port, JDBC User, JDBC Password, and JDBC Databse settings in the content.properties file. Also ensure that the Portal Database Server is running. Error Details Exception Message: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect com.plumtree.jdbc.base.BaseSQLException: [plumtree][SQLServer JDBC Driver]Error establishing socket. Connection refused: connect at com.plumtree.jdbc.base.BaseExceptions.createException(Unknown Source) at com.plumtree.jdbc.base.BaseExceptions.getException(Unknown Source) at com.plumtree.jdbc.sqlserver.tds.TDSConnection.(Unknown Source) at com.plumtree.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) at com.plumtree.jdbc.base.BaseConnection.connect(Unknown Source) at com.plumtree.jdbc.base.BaseConnectionStartup.run(Unknown Source) Document Repository OK Workflow Server FAIL
    Settings Workflow Server Base URL: http://OXO-SRV03:7087 Content Server URL: http://OXO-SRV03:7777/ptcs Workflow Server Portlet URL: http://OXO-SRV03:7087/workflow Possible Resolution Verify that the Plumtree Workflow service has been started. Also, check the Workflow Serverdiagnostics for more detailed information. Error Details Exception Message: Cannot access Burlap service at [http://localhost:7087/wfserver/caucho/workflowsvc-burlap]; nested exception is com.caucho.burlap.client.BurlapProtocolException: org.springframework.remoting.RemoteAccessException: Cannot access Burlap service at [http://localhost:7087/wfserver/caucho/workflowsvc-burlap]; nested exception is com.caucho.burlap.client.BurlapProtocolException: com.caucho.burlap.client.BurlapProtocolException: at com.caucho.burlap.client.BurlapProxy.invoke(BurlapProxy.java:171) at $Proxy2.connectPortalUser(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.springframework.remoting.caucho.BurlapClientInterceptor.invoke

    Don't know if anyone is still having problems with this, but just in case...
    I was getting a similar error. I had an Event Viewer record (It wasn't a Warning or an Error, just an Information) reading:You are running a version of Microsoft SQL Server 2000 or Microsoft SQL Server 2000 Desktop Engine (also called MSDE) that has known security vulnerabilities when used in conjunction with this version of Windows. To reduce your computer's vulnerability to certain virus attacks, the TCP/IP and UDP network ports of Microsoft SQL Server 2000, MSDE, or both have been disabled. To enable these ports, you must install a patch, or the most recent service pack for Microsoft SQL Server 2000 or MSDE from http://www.microsoft.com/sql/downloads/default.asp
    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
    I installed SQL SP4 and it corrected the problem

  • Running SQL Procedure with dg4msql errors: Function sequence error HY010

    I am trying to execute a stored procedure on a SQL database and get the error Function sequence error HY010.
    A simple query on a table returns teh expected result.
    I have a single Win2008R2 server with MSSQL Express 2008 and Oracle 11gR2 (32bit not 64bit version of Oracle)
    Below is the gateway init, listener and tnsnames files and the query I am trying to run:
    -- initORIONWASP.ora --
    HS_FDS_CONNECT_INFO=INGRDB//waspForGIS
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER
    HS_CALL_NAME=dbo.spTest;dbo.spQueryAsset;dbo.spQueryAssetDetails
    HS_FDS_PROC_IS_FUNC=TRUE
    HS_FDS_RESULTSET_SUPPORT=TRUE
    -- Listener.ora -- (partial)
    (SID_DESC =
    (SID_NAME = ORIONWASP)
    (ORACLE_HOME = C:\Oracle\product\11.2.0\dbhome_1)
    (PROGRAM=dg4msql)
    -- tnsnames.ora -- (partial)
    ORIONWASP =
    (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=INGRDB)(PORT=1521))
    (CONNECT_DATA=(SID=ORIONWASP))
    (HS=OK)
    -- Simple Query --
    Running select "Asset_ID" from asset@ORIONWASP; returns the correct result
    Running select * from sys.procedures@ORIONWASP; returns a list of procedures including the procedure I want to run
    -- This pl/sql block returns the error ******* identifier 'spTest@ORIONWASP' must be declared *******
    declare
    begin
    "spTest"@ORIONWASP;
    end;
    -- This passthrough pl/sql block returns ******** [Oracle][ODBC SQL Server Driver]Function sequence error {HY010} ********
    DECLARE
    CRS BINARY_INTEGER;
    RET BINARY_INTEGER;
    v_COL1 VARCHAR2(50);
    v_COL2 VARCHAR2(50);
    BEGIN
    CRS := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@ORIONWASP;
    DBMS_HS_PASSTHROUGH.PARSE@ORIONWASP(CRS, 'exec spTest');
    BEGIN
    RET := 0;
    WHILE (TRUE)
    LOOP
    ret := DBMS_HS_PASSTHROUGH.FETCH_ROW@ORIONWASP(CRS, FALSE);
    DBMS_HS_PASSTHROUGH.GET_VALUE@ORIONWASP(CRS, 1, v_COL1);
    DBMS_HS_PASSTHROUGH.GET_VALUE@ORIONWASP(CRS, 2, v_COL2);
    DBMS_OUTPUT.PUT_Line('Col1:'||v_COL1||' Col2:'||v_COL2);
    END LOOP;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    BEGIN
    DBMS_OUTPUT.PUT_LINE('End of Fetch');
    DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@ORIONWASP(CRS);
    END;
    END;
    END;
    /

    The gateway configuration file contains:
    HS_FDS_PROC_IS_FUNC=TRUE
    HS_FDS_RESULTSET_SUPPORT=TRUE
    This setting commonly causes problems and you need to set
    HS_FDS_PROC_IS_FUNC=TRUE
    HS_FDS_RESULTSET_SUPPORT=FALSE
    for normal procedure calls and
    HS_FDS_PROC_IS_FUNC=FALSE
    HS_FDS_RESULTSET_SUPPORT=TRUE
    when calling the procedure with ref cursors.
    There's a note in My Oracle Support that gives you examples how to call remote SQl Server procedures
         Note.197192.1 Different Methods How To Call MS SQL Server Procedures Using TG4MSQL - DG4MSQL
    and another one for the Sybase gateway but this code is similar for the SQL Server:
    Article-ID: Note 351400.1
    Title: How to Call a Remote Sybase Procedure Using TG4SYBS

  • Sql server 2000 connection error

    Hi everyone ,
    I am trying to connect Sql server 2000 using ODI and trying to pass the parameters.
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;databaseName=Northwind;integratedSecurity=false
    username : sa
    password : *******
    error :
    connection failed
    com.sunopsis.sql.c: com.microsoft.jdbc.sqlserver.SQLServerDriver
    can some one help me to make it worked out especially enabling IPaddress in Sql server 2000. both for the Server and network utility have 1433 as the port for tcp/ip .
    Thanks

    Firstly, this message normally means that you do not have the JAR files for the driver in your classpath. The classpath is created dynamically at startup of the ODI process, so the jar needs to be in the drivers directory before you start.
    Second, even if you are using SQL Server 2000, the recommendation is to use the SQL Server 2005 driver, available from the Microsoft site (http://msdn.microsoft.com/en-us/data/aa937724.aspx). It is much more capable and reliable. Note that you will need to use a different Driver name, and the URL format is also slightly different.
    Driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
    URL: jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

  • CF8 & MSDE SQL Server DSN Connection Error SOLVED!!!

    Getting the following error trying to add a CF DSN to SQL
    Server?
    Connection verification failed for data source:
    datasource_name
    java.sql.SQLException: [Macromedia][SQLServer JDBC
    Driver]Error establishing socket to host and port: localhost:1433.
    Reason: Connection refused: connect
    The root cause was that: java.sql.SQLException:
    [Macromedia][SQLServer JDBC Driver]Error establishing socket to
    host and port: localhost:1433. Reason: Connection refused: connect
    There are several steps in order to make ColdFusion 8 and
    MSDE SQL 2005 Server
    1. TCP/IP is not enabled by default. When looking in SQL
    Server Configuration Manager it appears TCP/IP is enabled by there
    is a second place that it has to be enabled.
    2. The TCP/IP port is dynamically assigned each time the
    service is started, if they are no errors it the port number stays
    the same but if there is an error the port number is dynamically
    changed the next time the service starts.
    3. You have to add your dsn login username and password to
    the database in order to connect without using the sa username and
    password.
    Steps to get DSN setup correctly.
    1. Open SQL Server Configuration Manager
    2. Expand the SQL Server 2005 Network Configuration Group
    3. Click on Protocols for SQLEXPRESS
    4. Right click TCP/IP in the right pane and select properties
    5. On the protocol tab under enabled set to yes and apply.
    6. Disable dynamic port assignments by following the
    instruction below:
    If enabled, the default instance of the Microsoft SQL Server
    Database Engine listens on TCP port 1433. Named instances of the
    SQL Server Database Engine and SQL Server Compact Edition are
    configured for dynamic ports, which means they select an available
    port when the SQL Server service is started. When connecting to a
    named instance through a firewall, configure the Database Engine to
    listen on a specific port, so that the appropriate port can be
    opened in the firewall.
    To assign a TCP/IP port number to the SQL Server Database
    Engine
    In SQL Server Configuration Manager, in the console pane,
    expand SQL Server 2005 Network Configuration, expand Protocols for
    &lt;instance name&gt;, and then double-click TCP/IP.
    In the TCP/IP Properties dialog box, on the IP Addresses tab,
    several IP addresses appear, in the format IP1, IP2, up to IPAll.
    One of these are for the IP address of the loopback adapter,
    127.0.0.1. Additional IP addresses appear for each IP Address on
    the computer. Right-click each address, and then click Properties
    to identify the IP address that you wish to configure.
    If the TCP Dynamic Ports dialog box contains 0, indicating
    the Database Engine is listening on dynamic ports, delete the 0.
    In the IPn Properties area box, in the TCP Port box, type the
    port number you wish this IP address to listen on, and then click
    OK.
    In the console pane, click SQL Server 2005 Services.
    In the details pane, right-click SQL Server (&lt;instance
    name&gt;) and then click restart, to stop and restart SQL
    Server.
    7. Open Microsoft SQL Server Management Studio Express
    8. Connect to your local copy of SQL Server
    9. Expand the Security group
    10. Right click login. Select new login.
    12. Enter the dsn login name you want.
    11. Choose SQL Server Authetication.
    12. Enter the dsn password you want twice.
    13. Disable user must change password at next login
    14. Choose default database if you like.
    15. Click User Mappings in left pane.
    16. Click databases you want login to have access to.
    17. Click ok.
    You should now be able to add your CF DSN using localhost for
    server and the port number you put in earlier. Default port number
    is 1433.
    You can view which port number SQL is listening to at this
    registry key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
    Server\SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp
    tcpport
    You can test connectivity to the sql server by typing telnet
    localhost 1433 or the port number you selected at a command prompt.
    You should get a blank screen not an error.
    Hope this helps, I spent 3 hours figuring it out.
    David

    I'm running into the same error with CFMX 7 and SQL 2000. The
    port is set correctly (1433) in SQL, but it just can't communicate
    successfully. SQL reside on a seperate server. Any thoughts?
    Chris

  • Use PL/SQL procedure to guard against malformed CSV files before upload

    Hi all,
    In my CSV upload utility, I've implemented error checking procedures, but they are invoked only AFTER data has been uploaded to temp table. This doesn't catch the following sample scenarios:
    1. The CSV is malformed, with some rows shifted due to fields and separators missing here and there.
    2. User has chosen a wrong CSV to upload (most likely number of fields mismatch)
    I'm wondering if it is a good idea to have procedure to read in the CSV, scan each line, count the number of fields (null fields but with delimiters showing the field exist is ok) for each record. If every single record matches the required number of fields for that table, then the CSV is ok, and the insert from external table to temp table is allow. This will ensure at least the CSV file has a valid matrix size for the target table, but rest of error checking is left until after temp table is populated.
    One of my concerns is, I specify "missing field values are null" in the external table parameters, which is necessary since not all fields are required. Does this specification causes a row with missing trailing separators still considered valid? If so then the stored procedure must be programmed to omit such a case.
    What do you think? Many thanks.

    Hi, Cuauhtemoc Amox
    Thank you for your advice. I have set web adi  using PL SQL interface.
    I have decided to go futher
    i have a procedure like that
    procedure delete_old_data ( p_id in number, p_description in varchar2)
    as
    begin
                   begin
                   if g_flag ='N' then
                   delete from xx_test;
                    g_flag='Y';
                    else null;
                    end if;
                    end;
    insert into xx_test (p_id,p_descriptiom);
    end;
    G_FLAG is a global variable with default value ='N'  in my package. When web_adi upload
    first row from excel sheet, then procedure delete all data from table and change g_flag to 'Y'.
    All other rows uploads succesfully; it  works fine.
    But when user change data in excel sheet and try to upload second time. DELETE_OLD_DATA procedure doesnt work in proper way.
    I have found what problem is. when user use same template and try to upload data several times there is same SESSION_ID in database.
    i.e. g_flag ='Y' when user try to upload second time. But when user log off and create template again it is work properly.
    My question is: How i can different upload attempts? May be there is some id for each upload proccess.
    if i can use this ID in my procedure user will have opportunity to use same template.
    Thank you

  • TCP connection error when sending MODBUS commands to WAGO 750-881 controller after 113655 bytes of data have been sent

    Hi all,
    I am new to the world of labview and am attempting to build a VI which sends commands to a 750-881 WAGO controller at periodic intervals of 10ms. 
    To set each of the DO's of the WAGO at once I therefore attempt to send the Modbus fc15 command every 10ms using the standard Labview TCP write module. 
    When I run the VI it works for about a minute before I recieve an Error 56 message telling me the TCP connection has timed out. Thinking this strange, I decided to record the number of bytes sent via the TCP connection whilst running the program. In doing so I noticed that the connection broke after exactly 113655 Bytes of data had been sent each time. 
    Thinking that I may have been sending too many messages I increased the While-loop delay from 10ms to 20, 100 and 200 ms but the error remained. I also tried playing with the TCP connection timeout and the TCP write timeout but neither of these had any effect on the problem. 
    I cannot see why this error is occuring, as the program works perfectly up untill the 113655 Bytes mark. 
    I have attached a screenshot of the basic VI (simply showing a MODBUS command being sent every second) and of a more advanced VI (where I am able to control each DO of the WAGO manually by setting a frequency at which the DO should switch between ON and OFF). 
    If anybody has any ideas on where the problems lie, or what I could do to further debug the program this would be greatly appreciated. 
    Solved!
    Go to Solution.
    Attachments:
    Basic_VI.png ‏84 KB
    Expanded_VI.png ‏89 KB

    AvdLinden wrote:
    Hi ThiCop,
    Yes the error occurs after exactly 113655 bytes every time. The timeout control I would like to use is 10ms, however even increasing this to 1s or 10s does not remove the error, which leads me to believe that this is not the issue (furthermore, not adding any delay to the while loop, thus letting it run at maximum speed, has shown that the TCP connection is able to send all 113655 bytes in under 3 seconds again pointing towards the timeout control not being the issue here). 
    I attempted Marco's suggestion but an having difficulty translating the string returned into a readable string, (rightnow the response given is "      -#   +   ").
    As to your second suggestion, I implemented something similar where I created a sub VI to build a TCP connection, send a message and then close the connection. I now build each message and then send the string to this subVI which successfully sends the command to my application. Whilst not being the most elegant method of solving the issue, it has resolved the timeout problem meaning I am able to send as many commands as I want. So in that sense the problem has been solved. 
    If you still have tips on how to correctly read the TCP read output, I would however like to see if I could not get my first program to work as it is slightly more robust in terms of timing. 
    Modbus TCP RTU is a binary protocol, as you show in your Basic VI, where you format the data stream using byte values. So you have to interprete the returned answer accordingly with the Modbus RTU spec in hand. Now what is most likely happening is that the connection gets hung after a while since you do NOT read the data the device sends as response to your commands. The TCP/IP stack buffers those bytes and at some point the internal buffers overflow and the connection is blocked by the stack. So adding the TCP Read at strategic places (usually after each write) is the proper solution for this. Is there any reason that you didn't use the NI provided Modbus TCP library?
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to use pl/sql procedure or function as part of validate the entity obj?

    Hi,
    we are migrating from oracle forms to jdeveloper 11g.
    I have a req. that,i wanted to use oracle pl/sql procedure to validate a attribute in an entity created with ADF BC?
    Is it possible to implement this?
    And how to show the error message from pl/sql procedure?
    Regards
    Murali.

    Hi,
    It is possible by using a method validator for the entity attribute.
    Create a transient attribute 'X'.
    In the validation section of the attribute to be validate, choose method validator.
    In the Error Message tab set error message as {0}.
    Below the value for tokentoken should source.X (X is the transient attribute name)
    In the java code of method validator, call the stored procedure and set the value of transient attribute X with the error message from SP.
    Use setX("ErrorMessage").
    Regards,
    Srinidhi

  • Retrieve online file as CSV via HTTPS using PL/SQL procedure

    Hi all,
    Situation:
    Server A (not ORACLE)_: accesed via URL, generates dynamically a CSV file and returns to the requestor.
    Server B (ORACLE)_: which runs the PL/SQL script. It is the requestor. Read the CSV and store it within ORACLE.
    (1) I want to connect from Server B (ORACLE) to an external URL via HTTPS which generates dynamically the CSV file. Subdomain.domain it is the Server A which contains this CSV file.
    https://dubdomain.domain/csv_generator.php?query=q1
    (2) This file is downloaded to the Server B (ORACLE). A PL/SQL script executed in this machine do the task.
    (3) After that, I load this CSV to an ORACLE table which a common CSV PL/SQL parser.
    Doubts:
    Is it possible to retrieve an online file (a CSV) dynamically created and hosted in a third party server (Not ORACLE) via HTTPS using a PL/SQL procedure executed in a ORACLE server? If the answer is yes, what technology could I use? Any ideas?
    Thanks in advance,
    Yago

    An CSV example in {message:id=10158148}.
    For https, two actions are needed in addition.
    Firstly, the certificate of the https web server needs to be loaded in an Oracle Wallet on your database server. The wallet will have a specific directory location on the server, and will be protected by a password.
    Secondly, the PL/SQL procedure making web call, needs to open the wallet (using <i>UTL_HTTP.set_wallet</i>) using the location and password. Example of that in {message:id=10820182}.

Maybe you are looking for