Welcome Guest! Log in
Stambia versions 2.x, 3.x, S17, S18, S19 and S20 are reaching End of Support January, 15th, 2024. Please consider upgrading to the supported Semarchy xDI versions. See Global Policy Support and the Semarchy Documentation.

The Stambia User Community is moving to Semarchy! All the applicable resources have already been moved or are currently being moved to their new location. Read more…

FTPS SERVER ON Windows server IIS: FTPGET OR FTPPUT DOES NOTHING

    Symptom

     

    While trying to work with a FTPS server on Windows server IIS, a FtpGet or FtpPut action ends without error but does nothing (no file is really transferred).

     

    Solution

    Try to add '0' to the option 'FTP Protection Buffer Size' in the action:

     

    ftps sur Serveur IIS Stambia

     

    Explanation: Some FTPS server requires that a value of '0' is always passed as a parameter for the buffer-size. 

     

    FTPS Severs forcing to reuse SSL/TLS connection are throwing javax.net.ssl.SSLHandshakeException

      Symptom

      You are trying to perform operation on an FTP server such as retrieving files or putting files, and your target FTP Server is a server which requires that already opened SSL/TLS connections are reused for data exchanges instead of creating a new connection.

      When in this situation, you might encounter exceptions such as:

      javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
      at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:994)
      at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
      at org.apache.commons.net.ftp.FTPSClient.openDataConnection(FTPSClient.java:508)
      at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
      at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
      at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
      at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093)
      at com.indy.engine.actionCodes.FtpGetActionCodeI.executeSimpleCode(SourceFile:423)
      at com.indy.engine.action.common.ActionCodeTypeI.executeCode(SourceFile:1521)
      at com.indy.engine.action.common.ActionCodeTypeI.run(SourceFile:1666)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: java.io.EOFException: SSL peer shut down incorrectly
      at sun.security.ssl.InputRecord.read(InputRecord.java:505)
      at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)

       

      Solution

      This issue has been fixed in Stambia DI Runtime S17.6.7.

      Please update your Runtime to Stambia DI Runtime S17.6.7 or higher to resolve this issue.

      Note that if you are using Java 1.8u161 or higher, you may have to add an additional java option in Runtime's Configuration file (engineParameters.xml) for the fix to work:

      <parameters>
          <...>
          <javaConfiguration>
                 <property name="jdk.tls.useExtendedMasterSecret" value="false"/>
          </javaConfiguration>
          <...>
      </parameters>

       

      SSH Action does not load environment variables

        Symptom

        When executing a SSH command with the "Execute SSH" Action, some environment variables are not loaded / initialized.

        It seems that the SSH session does not load the Linux user's environment or profile.

        Solution

        The Execute SSH action opens a non-interactive shell session on the remote server. With this kind of session, the shell does not load the user's environement and profile scripts (see documentation for bash for example), this is why some environment variables are not available.

        Simple test to confirm this case: compare the result of the "set" command in your prefered Terminal application and in the output of Stambia's Execute SSH.

        A simple way to load environment variables is to source a config file at the beginning of your Execute SSH action Code:

        source /home/user/some_config.sh
        echo "$myvar is set"
        start_something.sh -o "${~/param}$"

         

        SQLException " Unsupported major.minor version 52.0" when connecting to a JDBC database

          SYMPTOM

          When connecting to a JDBC database, an error message similar to the following ones is displayed.

          Example 1:

          java.lang.UnsupportedClassVersionError: org/postgresql/Driver : Unsupported major.minor version 52.0
           at java.lang.ClassLoader.defineClass1(Native Method)
           at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
           at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
           at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
           at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
           at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
           at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
           at java.security.AccessController.doPrivileged(Native Method)
           at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
           at java.lang.Class.forName0(Native Method)
           at java.lang.Class.forName(Class.java:188)

           

          Example 2:

          Caused by: java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0
          at java.lang.ClassLoader.defineClass1(Native Method)
          at java.lang.ClassLoader.defineClass(Unknown Source)
          at java.security.SecureClassLoader.defineClass(Unknown Source)
          at java.net.URLClassLoader.defineClass(Unknown Source)
          at java.net.URLClassLoader.access$100(Unknown Source)
          at java.net.URLClassLoader$1.run(Unknown Source)
          at java.net.URLClassLoader$1.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.net.URLClassLoader.findClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          at java.lang.ClassLoader.loadClass(Unknown Source)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Unknown Source)
          at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1415)

          Solution

          Check if your Java version and JDBC driver version are compatible by using the database documentation.

          For example:
          Postgresql: https://jdbc.postgresql.org/download.html
          MySQL: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html

          Error when working with File: FileDriverStatement::executeQuery, error opening the file

            Symptom

            When working with a File metadata (executing a read or write mapping, replicate File to rdbms...) the following error occurs :

            Error: FileDriverStatement::executeQuery, error opening the file \\servername\d$\Data\IN\CUSTOMER-20180808-134523.txt

            The file is located on a shared drive.

            Solution

            This is generally due to permission issues.

            • Verify that the user which runs the Runtime has permission on the shared drive
            • Alternatively, share the folder instead of the drive : \\servername\IN\...

             

            Knowledge Base

            Suggest a new Article!