blowfish-cbc is not supported in FtpAdapter? Not true
We added a new JNDI to the FtpAdapter in Oracle SOA Suite 12.2.1.0.0, and upon execution of the SOA composite, received the error "blowfish-cbc is not supported".
Blowfish is a cipher, and this generally should be configured within the adapter itself.
Oracle Doc ID 2294667.1 states that patch 26561747 is available to resolve this, but this patch is only available for 12.2.1.2.0 and 12.2.1.3.0. The same note describes adding a properties to the composite.
Here are snippets of what can appear in the SOA diagnostic log file:
[2020-01-15T00:13:41.062-05:00] [soa_server2] [ERROR] [] [oracle.soa.adapter.ftp] [tid: [ACTIVE].ExecuteThread: '33' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: ad133614-5555-4444-8996-dd19444645ae-000001b5,1:18533] [APP: soa-infra] [partition-name: DOMAIN] [tenant-name: GLOBAL] [oracle.soa.tracking.FlowId: 2220001] [oracle.soa.tracking.InstanceId: 11671111] [oracle.soa.tracking.SCAEntityId: 470044] [composite_name: HelloWorld!1.0] [FlowId: 0000MybblRlF4Ep0^Ru1Vq1U7dr0000001] Exception while setting up session[[
BINDING.JCA-11443
Adapter internal error.
Adapter internal error.
The adapter has become unstable. This could be because of incorrect parameters supplied to the adapter. The parameter: {0} had value: {1}
Please make sure that SFTP has been setup correctly.
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.setContext(SSHSessionImpl.java:1510)
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.setUpPublicKeySocketConnection(SSHSessionImpl.java:414)
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.<init>(SSHSessionImpl.java:208)
.
.
.
Caused by: com.maverick.ssh.SshException: blowfish-cbc is not supported [Unknown cause]
at com.maverick.ssh2.Ssh2Context.setPreferredCipherSC(Unknown Source)
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.setContext(SSHSessionImpl.java:1480)
... 84 more
[2020-01-15T00:13:41.111-05:00] [soa_server2] [ERROR] [] [oracle.soa.bpel.engine.ws] [tid: [ACTIVE].ExecuteThread: '33' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: ad133614-5555-4444-8996-dd19444645ae-000001b5,1:18533] [APP: soa-infra] [partition-name: DOMAIN] [tenant-name: GLOBAL] [oracle.soa.tracking.FlowId: 2190001] [oracle.soa.tracking.InstanceId: 11110002] [oracle.soa.tracking.SCAEntityId: 471111] [oracle.soa.tracking.FaultId: 1080001] [composite_name: HelloWorld!1.6] [FlowId: 0000MybblRlF4Ep0^Ru1Vq1U7dr0000001] got FabricInvocationException[[
** Cikey: 11670002
** FlowId: 2190001
** Current Activity Key: 11670002-BpInv10-BpSeq29.27-1
** Current Activity Label: Invokewriteftp
** InvokeMessageGuid: ca4ccca2-3755-11ea-95c2-0050568aa3f6
** ComponentDN: Default/HelloWorld!1.6*soa_4eed0ef0-4414-4a00-9a1b-d7505f2231da/HelloWorld
** Properties for component HelloWorld:
** bpel.preference.ERPInstance: Prod
** bpel.preference.AlertEmailDL: ahmed.aboulnaga@notrealoracle.com
** bpel.config.oneWayDeliveryPolicy: async.persist
** Transaction info: Name=[EJB com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean.handleInvoke(com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage)],Xid=BEA1-2891D2B01A6E7C053D71(436384373),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=1,seconds left=1998,useSecure=false,activeThread=Thread[[ACTIVE] ExecuteThread: '33' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads],XAServerResourceInfo[SOADataSource_soa_domain]=(ServerResourceInfo[SOADataSource_soa_domain]=(state=started,assigned=none),xar=SOADataSource,re-Registered = false),SCInfo[soa_domain+soa_server2]=(state=active),properties=({weblogic.transaction.partitionName=DOMAIN, weblogic.transaction.name=[EJB com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean.handleInvoke(com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage)]}),local properties=({weblogic.jdbc.jta.SOADataSource=[autoCommit=true,enabled=true,isXA=true,isJTS=false,vendorID=0,connUsed=true,doInit=false,'null',destroyed=false,poolname=SOADataSource,appname=null,moduleName=null,connectTime=275,dirtyIsolationLevel=false,initialIsolationLevel=2,infected=false,lastSuccessfulConnectionUse=1579065219873,secondsToTrustAnIdlePoolConnection=10,currentUser=null,currentThread=null,lastUser=null,currentError=null,currentErrorTimestamp=null,JDBC4Runtime=true,supportStatementPoolable=true,needRestoreClientInfo=false,defaultClientInfo={},supportIsValid=true]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=soa_server2+127.0.0.1:8001+soa_domain+t3+ CoordinatorNonSecureURL=soa_server2+127.0.0.1:8001+soa_domain+t3+ coordinatorSecureURL=null, XAResources={WSATGatewayRM_soa_server2_soa_domain, WLStore_soa_domain_BPMJMSFileStore_auto_2, eis/Coherence/Remote, eis/tibjms/Queue, eis/Coherence/XALocal, eis/oracle/in-memory, eis/aqjms/EDNLocalTxDurableTopic, , oracle.tip.adapter.jms.JmsXAResource, eis/activemq/Queue, WLStore_soa_domain__WLS_soa_server2, eis/aqjms/EDNLocalTxTopic, eis/Coherence/Local, eis/tibjmsDirect/Topic, eis/wls/Topic, eis/tibjms/Topic, eis/jms/aiaB2BQueueCF, eis/wls/Queue, eis/jms/aiaErrorTopicCF, eis/tibjmsDirect/Queue, eis/aqjms/EDNxaDurableTopic, SOADataSource_soa_domain, eis/wls/EDNxaDurableTopic, eis/aqjms/EDNxaTopic, eis/webspheremq/Queue, eis/wls/EDNLocalTxDurableTopic, eis/sunmq/Queue, eis/aqjms/Topic, tangosol.coherenceTxCCI, eis/File/XAFileAdapter, WLStore_soa_domain_UMSJMSFileStore_auto_4, eis/File/XAFileAdapter2, eis/wls/EDNLocalTxTopic, eis/XAFileAdapter3, OraSDPMDataSource_soa_domain, tangosol.coherenceTx, eis/XAFileAdapter, WLStore_soa_domain_SOAJMSFileStore_auto_2, eis/AQ/aqSample, EDNDataSource_soa_domain, oracle.tip.adapter.apps.AppsXAResource, eis/wls/EDNxaTopic, eis/aqjms/Queue, eis/aq/aiaB2BInfraAQCF, rep_user_soa_domain},NonXAResources={})],CoordinatorURL=soa_server2+127.0.0.1:8001+soa_domain+t3+)
** MaxThreadsConstraints: 150
** Total dispatcher messages scheduled for processing: 0
** Total number of threads processing dispatcher messages: 1
** Max Heap size: 8555069440
** Free Heap size: 7727236144 com.maverick.ssh.SshException: blowfish-cbc is not supported [Unknown cause]
at com.maverick.ssh2.Ssh2Context.setPreferredCipherSC(Unknown Source)
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.setContext(SSHSessionImpl.java:1480)
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.setUpPublicKeySocketConnection(SSHSessionImpl.java:414)
at oracle.tip.adapter.ftp.SshImpl.SSHSessionImpl.<init>(SSHSessionImpl.java:208)
.
.
.
The solution is simply to add the cipher to the adapter.
- Log in to the WebLogic Server Administration Console.
- Click on Lock & Edit.
- Click on Deployments.
- Click on FtpAdapter.
- Click on Configuration.
- Click on Outbound Connection Pools.
- Expand javax.resource.cci.ConnectionFactory.
- Click on the outbound connection pool for the FTP resource adapter.
- In the PreferredCipherSuite property, add "aes128-cbc" (see screenshot below)
- Save.
- Navigate to Deployments.
- Select the checkbox beside FtpAdapter.
- Click on Update.
- Select Update this application in place with new deployment plan changes.
- Click Next.
- Click Finish.
- Activate changes.
- Restart the entire domain (including AdminServer).