PARTNERS - Please join us for our upcoming webinar:
Leveraging Intelligent Recommendations for Operational Transformation.
AMS Partners click HERE | EMEA/APJ Partners click HERE

Error during user import via DB connector

Ankky
Regular Contributor
Regular Contributor

Hello Experts,

I'm trying to import user from a Database but encountering the error mentioned below. No other jobs are running concurrently and the job status for user import shows successful which is quite misleading. 

"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.304449823Z stdout F 2023-08-29 11:13:03,304 [quartzScheduler_Worker-5] DEBUG services.JobManagementGuardRailService - validateRunningJobOfDifferentType result : true"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.304474825Z stdout F 2023-08-29 11:13:03,304 [quartzScheduler_Worker-5] DEBUG services.JobManagementGuardRailService - Inside allowUserImportJob"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.304478325Z stdout F 2023-08-29 11:13:03,304 [quartzScheduler_Worker-5] DEBUG services.JobManagementGuardRailService - UserImportJobList : UserImportJob,UserImportFullJob,UserImportIncrementalJob,SchemaUserJob"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307160298Z stdout F 2023-08-29 11:13:03,307 [quartzScheduler_Worker-5] DEBUG services.JobManagementGuardRailService - BLOCK_CONCURRENT_EXECUTION_OF_USERIMPORT_JOBS : 1"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.3071848Z stdout F 2023-08-29 11:13:03,307 [quartzScheduler_Worker-5] DEBUG services.JobManagementGuardRailService - UserImportJob is available in UserImportJobs"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307452117Z stdout F 2023-08-29 11:13:03,307 [quartzScheduler_Worker-5] ERROR services.JobManagementGuardRailService - Error executing validateConflictingJob"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307473719Z stdout F java.lang.NullPointerException"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307477219Z stdout F at java.lang.String.contains(String.java:2133)"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307479719Z stdout F at com.saviynt.ecm.services.JobManagementGuardRailService$_allowUserImportJob_closure5.doCall(JobManagementGuardRailService.groovy:158)"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307482719Z stdout F at com.saviynt.ecm.services.JobManagementGuardRailService.allowUserImportJob(JobManagementGuardRailService.groovy:157)"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.307484819Z stdout F at com.saviynt.ecm.services.JobManagementGuardRailService.validateConflictingJob(JobManagementGuardRailService.groovy:126)"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.30748702Z stdout F at UserImportJob.execute(UserImportJob.groovy:30)"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.30748912Z stdout F at org.quartz.core.JobRunShell.run(JobRunShell.java:199)"
"ecm-worker","2023-08-29T11:13:03.658+00:00","2023-08-29T11:13:03.30749142Z stdout F at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)"

Any suggestions to solve this issue?

Thanks

7 REPLIES 7

adriencosson
Valued Contributor
Valued Contributor

Hi @Ankky ,

Just to avoid any misleading configurations or running job, have you tried to restart the application and run the job ? Can you also provide full details logs to help you investigate ?

Regards,
Adrien COSSON

Ankky
Regular Contributor
Regular Contributor

Hi @adriencosson ,

Thanks for your response.

Yes, I restarted application couple of times but the issue persists. Attaching logs.

Thanks

adriencosson
Valued Contributor
Valued Contributor

@Ankky ,

Is the behaviour different when you disable the below feature in Global Configurations ?

adriencosson_0-1693323043423.png

Also, does the job stops running directly after launching it ?

It does not look that there is a concurrent job as we get the below log :

"Only one instance is running.. Trigger Name : Staff_HR_Full_User_Import""

You can get more logs from the import by adding the below JSON in "ConfigJSON" of your connector :

{"showLogs":true}
Regards,
Adrien COSSON

Ankky
Regular Contributor
Regular Contributor

I don't see the null pointer after disabling the global setting but observing the below error:

2023-08-29T21:20:30+05:30-userms-2023-08-29T15:50:29.803547282Z stdout F 2023-08-29 15:50:29.803 ERROR [traceId=b623caf11307a6d4, spanId=b623caf11307a6d4, spanExportable=true, X-Span-Export=true, X-B3-SpanId=b623caf11307a6d4, TENANT_ID=DEFAULT, X-B3-TraceId=b623caf11307a6d4] 7 --- [http-nio-8480-exec-8] o.s.c.s.i.web.ExceptionLoggingFilter : Uncaught exception thrown|org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe| at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353) ~[tomcat-embed-core-9.0.54.jar!/:na]| at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:783) ~[tomcat-embed-core-9.0.54.jar!/:na]| at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:688) ~[tomcat-embed-core-9.0.54.jar!/:na]| at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:388) ~[tomcat-embed-core-9.0.54.jar!/:na]| at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:366) ~[tomcat-embed-core-9.0.54.jar!/:na]| at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96) ~[tomcat-embed-core-9.0.54.jar!/:na]|Caused by: java.io.IOException: Broken pipe| at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[na:na]| at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) ~[na:na]| at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113) ~[na:na]| at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:79) ~[na:na]| at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50) ~[na:na]| at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:462) ~[na:na]|

 

Also, I couldn't locate "ConfigJSON" in the connector (DB Connector), could you please provide a screenshot on where to find it.

Thank you!

Hi @Ankky ,

Can you set Timeout in the DB URL of your connection and check once. What type of DB you are using?

  • To define MySQL timeout, use the format similar to the following:   jdbc:mysql://host:port/dbname?connectTimeout=5000&socketTimeout=30000
  • To define SQL Server timeout, use the format similar to the following:   jdbc:jtds:sqlserver://<ip_address>/<db_name>;instance=<SQLserver_name>;loginTimeout=5;socketTimeout=30000 

Refer: https://docs.saviyntcloud.com/bundle/Database-v23x/page/Content/Configuring-the-Integration-for-Impo...

 


Pandharinath Mahalle(Paddy)
If this reply helps your question, please consider selecting Accept As Solution and hit Kudos 🙂

Ankky
Regular Contributor
Regular Contributor

Hello @pmahalle,

I am using SQL Server and the problem persists even after setting timeout. I'm able to see (in the logs) that the connector is able to fetch values from database but it is not able to create the identity.

"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.422794338Z stdout F 2023-09-01 10:17:37,422 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - record# 1 -- row ::: 7 :: 7"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.42282354Z stdout F 2023-09-01 10:17:37,422 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Proceed to Import for records - > [0162904, Chris, 1, 0000201, 1, M0000201, Mike] : true"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.422848242Z stdout F 2023-09-01 10:17:37,422 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - user not found in map.. fetching.."
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.422855342Z stdout F 2023-09-01 10:17:37,422 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Executing query select userkey as userkey from users where username = :reconvalue , reconvalue=W0000201"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435953205Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Existing users in the system: 0"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435980207Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Number of Records in Feed = 1"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435983207Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Distinct users in feed = 1"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435985407Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Active Users not in feed = -1"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435987808Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Number of Users inserted = 0"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435989908Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Number of Users updated = 0"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435992108Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Number of Users inactivated = 0"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.435994408Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] DEBUG services.ImportSAvDataUserService  - Total Number of Users= 0"
"ecm-worker","2023-09-01T10:17:37.898+00:00","2023-09-01T10:17:37.436014209Z stdout F 2023-09-01 10:17:37,435 [quartzScheduler_Worker-1] ERROR services.ImportSAvDataUserService  - Error in Users Import - Import failed as no Users were inserted or updated"

Thanks, 

Ankky

Ankky
Regular Contributor
Regular Contributor

Posting the solution as it might help someone-

If you want to use DB connector for both create and update operations, then don't keep <userOperationsAllowed> in the import settings (import user XML).