Cloning AFX connectors creates duplicate connectors if connector names have been modified in RSA Identity Governance & Lifecycle
Originally Published: 2020-01-31
Article Number
Applies To
RSA Version/Condition: 7.1.1, 7.2.0
Issue
The following example illustrates this issue:
- Clone AFX connector Fox-Conn. (AFX > Clone > Copy)
- By default, the new connector name is Fox-Conn_1.
- Both connectors are Running:
- Rename the new connector Fox-Conn_1 to Fox-Prod_1.
- Both connectors are Running:
- Clone AFX connector Fox-Conn.
- Note a new connector called Fox-Conn_1 has been created.
- The new connector Fox-Conn_1 says in a Not Deployed state
- The new connector renamed to Fox-Prod_1 goes from Running to a Not Deployed state.
The aveksaServer.log file ($AVEKSA_HOME/wildfly/standalone/log/aveksaServer.log) has the following corresponding error:
01/31/2020 19:08:06.502 INFO (AFX log import) [com.aveksa.server.db.persistence.PersistenceServiceProvider] executeCallableStatement giving up after hitting SQLException: ORA-01427: single-row subquery returns more than one row ORA-06512: at "AVUSER.AFX_PKG", line 118 ORA-06512: at line 1 01/31/2020 19:08:06.512 WARN (AFX log import) [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] SQL Error: 1427, SQLState: 21000 01/31/2020 19:08:06.512 ERROR (AFX log import) [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] ORA-01427: single-row subquery returns more than one row ORA-06512: at "AVUSER.AFX_PKG", line 118 ORA-06512: at line 1 01/31/2020 19:08:06.514 WARN (AFX log import) [com.aveksa.afx.server.service.handler.AFXLoggingRequestHandler] Exception importing log data for server 1 com.aveksa.server.db.PersistenceException: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row ORA-06512: at "AVUSER.AFX_PKG", line 118 ORA-06512: at line 1 at com.aveksa.server.db.persistence.PersistenceServiceProvider.runStoredProcedure(PersistenceServiceProvider.java:1548) at com.aveksa.server.db.persistence.PersistenceServiceProvider.runStoredProcedure(PersistenceServiceProvider.java:1480) at com.aveksa.server.db.PersistenceManager.runStoredProcedure(PersistenceManager.java:245) at com.aveksa.afx.server.service.AFXLogServiceProvider.saveAFXLogData(AFXLogServiceProvider.java:69) at com.aveksa.afx.server.service.handler.AFXLoggingRequestHandler$LogImportRunner.run(AFXLoggingRequestHandler.java:85) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row ORA-06512: at "AVUSER.AFX_PKG", line 118 ORA-06512: at line 1 at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:223) at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:56) at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:907) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1119) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780) at oracle.jdbc.driver.T4CCallableStatement.executeInternal(T4CCallableStatement.java:1300) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3887) at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4230) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1079) at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:442) at com.aveksa.server.db.persistence.work.PersistenceServiceBaseWork.executeCallableStatement(PersistenceServiceBaseWork.java:36) at com.aveksa.server.db.persistence.work.StoredProcedureCallWork.execute(StoredProcedureCallWork.java:80) at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:37) at org.hibernate.internal.SessionImpl$3.accept(SessionImpl.java:2134) at org.hibernate.internal.SessionImpl$3.accept(SessionImpl.java:2131) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:332) at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2153) at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2138) at com.aveksa.server.db.persistence.PersistenceServiceProvider.runStoredProcedure(PersistenceServiceProvider.java:1526) ... 5 more Caused by: Error : 1427, Position : 0, Sql = BEGIN AFX_Pkg.Add_Afx_Log_Data(:1 ,:2 ); END;, OriginalSql = {call AFX_Pkg.Add_Afx_Log_Data(?,?)}, Error Msg = ORA-01427: single-row subquery returns more than one row
An attempt to export any AFX connector fails with:
Cannot Export: Could Not Create Connector Package
The aveksaServer.log file ($AVEKSA_HOME/wildfly/standalone/log/aveksaServer.log) has the following corresponding error from the connector package export:
01/10/2020 15:56:23.229 INFO (default task-15) [com.aveksa.afx.common.packagemgmt.connector.ConnectorPackager]
Creating a connector archive package to /tmp/AFXServer_tempConnectorExport1887938318328546660.zip
01/10/2020 15:56:24.118 ERROR (default task-15) [com.aveksa.afx.common.packagemgmt.connector.ConnectorPackageComponent]
Cannot_Archive_XML : acmExportConnector/Dog-Conn_1/CONNECTOR/Connector.xml java.util.zip.ZipException:
duplicate entry: acmExportConnector/Dog-Conn_1/CONNECTOR/Connector.xml
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:232)
at com.aveksa.afx.common.packagemgmt.connector.ConnectorPackageComponent.archiveXML(ConnectorPackageComponent.java:325)
at com.aveksa.afx.common.packagemgmt.connector.ConnectorPackageComponent.archive(ConnectorPackageComponent.java:126)
at com.aveksa.afx.common.packagemgmt.connector.ConnectorPackageComponent.createPackageArchive(ConnectorPackageComponent.java:65)
at com.aveksa.afx.common.packagemgmt.connector.ConnectorPackager.createPackageArchive(ConnectorPackager.java:37)
at com.aveksa.afx.ui.pages.packagemgmt.export.ExportPromptPage.handleSubmit(ExportPromptPage.java:82)
at com.aveksa.gui.pages.base.data.wizard.StepWizardDialogData.handleRequest(StepWizardDialogData.java:119)
at com.aveksa.afx.ui.pages.packagemgmt.export.AFXExportConnectorWizard.handleRequest(AFXExportConnectorWizard.java:143)
at com.aveksa.gui.pages.PageManager.forwardRequest(PageManager.java:605)
at com.aveksa.gui.pages.PageManager.handleRequest(PageManager.java:340)
at com.aveksa.gui.pages.PageManager.handleRequest(PageManager.java:271)
at com.aveksa.gui.core.MainManager.handleRequest(MainManager.java:186)
at com.aveksa.gui.core.MainManager.doGet(MainManager.java:130)
at com.aveksa.gui.core.MainManager.doPost(MainManager.java:428)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at com.aveksa.gui.core.filters.LoginFilter.doFilter(LoginFilter.java:62)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at com.aveksa.gui.util.security.XSSFilter.doFilter(XSSFilter.java:20)
Please refer to RSA Knowledge Base Article 000030327 -- Artifacts to gather in RSA Identity Governance & Lifecycle to find the location of the aveksaServer.log file for your specific deployment if you are on a WildFly cluster or a non-WildFly platform.
Cause
ORA-01427: single-row subquery returns more than one row
This error points to the cause of the issue which is that there is more than one AFX connector with the same name.
Duplicate AFX connector names can occur when renaming a cloned AFX connector and cloning the original connector again.
Consider the example below:
- Connector Dog-Conn is created and cloned four times and no duplicate AFX connector names are created. This is the expected behavior.
- Create connector Dog-Conn.
- Clone Dog-Conn and it gets called Dog-Conn_1.
- Clone Dog-Conn again and it gets called Dog-Conn_2.
- Clone Dog-Conn again and it gets called Dog-Conn_3.
- Clone Dog-Conn again and it gets called Dog-Conn_4.
- Connector Fox-Conn is created and cloned once and renamed before being cloned again. When cloned again, a duplicate AFX connector is created. There are now two AFX connectors called Fox-Conn_1.
- Create connector Fox-Conn.
- Clone Fox-Conn and it gets called Fox-Conn_1.
- Edit Fox-Conn_1 and call it Fox-Prod_1 (But its real or internal name is still Fox-Conn_1).
- Clone Fox-Conn again and it gets called Fox-Conn_1 (instead of Fox-Conn_2).
This issue has been reported in engineering ticket ACM-103128.
Resolution
Workaround
To delete the duplicate connectors, login to the RSA Identity Governance & Lifecycle user interface and go to AFX > Connectors > check each duplicated connector > Delete.)
To avoid changing the name of any cloned AFX connectors until you are done cloning them change your cloning procedure:
FROM:
- Create connector Fox-Conn.
- Clone Fox-Conn and it gets called Fox-Conn_1.
- Edit Fox-Conn_1 and call it Fox-Prod_1 (But its real or internal name is still Fox-Conn_1).
- Clone Fox-Conn again and it gets called Fox-Conn_1 (instead of Fox-Conn_2).
TO::
- Create connector Fox-Conn.
- Clone Fox-Conn and it gets called Fox-Conn_1.
- Clone Fox-Conn again and it gets called Fox-Conn_2.
- Clone Fox-Conn again and it gets called Fox-Conn_3.
- Clone Fox-Conn again and it gets called Fox-Conn_4.
- Edit Fox-Conn_1 and call it Fox-Prod_1.
- Edit Fox-Conn_2 and call it Fox-Prod_2.
- Edit Fox-Conn_3 and call it Fox-Prod_3.
- Edit Fox-Conn_4 and call it Fox-Prod_4.
- Continue cloning until you have as many as you need.
- Do NOT clone Fox-Conn again.
Related Articles
Authentication Manager 8.5 P5 connection to Cloud Authentication Service gets “permitted only authenticators you have purc… 59Number of Views How to synchronize user accounts that do not have an email address to the SecurID Access Cloud Authentication Service 119Number of Views Create list of users who have not logged into RSA Authentication Manager 8.x for a specific period of days 112Number of Views How to update an Active Directory Account Attribute to have no value <not set> using an Active Directory AFX Connector in … 120Number of Views Your client does not have permissions to get this URL from the server error with RSA Authentication Agent for Web: IIS 122Number of Views
Trending Articles
RSA MFA Agent 2.3.6 for Microsoft Windows Installation and Administration Guide RSA Authentication Manager 8.9 Release Notes (January 2026) RSA Release Notes for RSA Authentication Manager 8.8 Deploying RSA Authenticator 6.2.2 for Windows Using DISM Supported On-Demand Authentication (ODA) SMS providers for use with RSA Authentication Manager 8.x
Don't see what you're looking for?