Advanced Query (Bulk Delete) Error - Production Environment only

Advanced Query (Bulk Delete) Error - Production Environment only

  

Hi.

We are experiencing an error in our Production environment.

This error occurs when we are using an advanced query to bulk delete records from an entity. The volume of data does not seem to be causing the issue, given that we are using the same data (configuration data) on all of the environments. The logged error is "ORA-01013: o utilizador pediu o cancelamento da operação atual", and is triggered in our Oracle database.

We are only experiencing this error in our Production environments, the query is working well in Non-Production environments. The deployment to Production was made yesterday and we noticed the error while making the setup configurations today.

We analyzed the machine configurations and we didn't detect anything that might be causing this issue. The installation was made manually and consists in a copy of a previously configured Development environment, even though the Production server has specs adjusted to Production environment, as recommended.

Can anyone please help us understand the root cause of this problem?

Thank you in advance,

Maria

Hello mariap

A search in google shows almost the same causes or this error, being timeout the most common.
So, you should check if you are not haveing timeouts in the operations and change the timeout configuration to prevent this. 

Hope this helps.

Cheers,
Eduardo Jauch

Hello mariap,

what you're experiencing is timeouts during your delete process.

Are you sure it's not a question of volume? Production environments tipically have more data.

Have you looked into your delete rules in your entities? That is, what type of behaviour should be observed when deleting data from entities that have a relationship between them.

You may be facing some type of lock because of poor configuration in your delete rules...

Another important thing is the order of your deletions.

You should delete children first... parents last.

João Heleno wrote:

Another important thing is the order of your deletions.

You should delete children first... parents last.

Hi João.

If the Delete rule is Delete or Ignore, this would not cause harm by itself, no?
And if the rule is Protect, in the case of trying to delete children before the parent, the database would rise an error, not a timeout... I think.

Cheers,
Eduardo Jauch


Eduardo Jauch wrote:

Hi João.

If the Delete rule is Delete or Ignore, this would not cause harm by itself, no?
And if the rule is Protect, in the case of trying to delete children before the parent, the database would rise an error, not a timeout... I think.

Cheers,
Eduardo Jauch


Sure, it would be a different error.

@Maria, are you deleting your data in a timer? What's the timeout defined in Service Center?


Dont forget.. basic delete is horrible on the database. You end up up with a transaction log which can grow enormously.

Imho depending on what kind of deletes either

 - do a truncate 

- Or drop constraints and delete.

- Or do the deletes by 1000 records and commit afterwards.


First 2 needs to have a db-user with more rights.

Last one is easy and should be tweakable of course


Hi all, and thank you for your suggestions.

However:

- I know that timeout is pointed as probable cause. However, timeout and data volume do not seem to be the problem since the initial configurations only delete about 100/200 records or so. The delete query is regarding configuration data only, and that data is the same in non-production environments. Also, I increased the timeout of that action and it didn't solve it anyway.

- Delete rules are correctly defined, and the delete order as well - children first, parents last.

- I am also not expecting lock issues, since I have a CommitTransaction being made immediately before the bulk delete operation to prevent that possibility.

- The data is not deleted in a timer, it is triggered by a screen action.

So... I am open to more suggestions!

Thanks,

Maria


@Maria

Hmmm, it's hard to tell. All the usual things have been commented on.

Can you share with us a simplified version of your module?

Sorry @JoãoHeleno, I can't. 

The operation breaks on the advanced query and I am still looking for some answers... 

Anyone?


Thanks,

Maria

Can you paste the error's stack from Service Center?