Hello, we are used to connect to MS SQL Server, but now we have a customer request to work on Oracle, so we start testing our application on oracle and faced may problem, but know we are facing an error in the step of building the database(which was work fine on MS SQL Server 2008 R2). the error is:
Error Building Master DB: SQL error occured.
SQL error details 'Type: SerializationFailure;'
Query 'BEGIN
DELETE FROM "INFINITYMASTER"."Metadata.Type";
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p2_0, :p2_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p3_0, :p3_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p4_0, :p4_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p5_0, :p5_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p6_0, :p6_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p7_0, :p7_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p8_0, :p8_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p9_0, :p9_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p10_0, :p10_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p11_0, :p11_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p12_0, :p12_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p13_0, :p13_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p14_0, :p14_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p15_0, :p15_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p16_0, :p16_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p17_0, :p17_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p18_0, :p18_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p19_0, :p19_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p20_0, :p20_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p21_0, :p21_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p22_0, :p22_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p23_0, :p23_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p24_0, :p24_1);
INSERT INTO "INFINITYMASTER"."Metadata.Type" ("Id", "Name") VALUES (:p25_0, :p25_1);
END; [p2_0='2';p2_1='Xtensive.Orm.Metadata.Assembly';p3_0='1';p3_1='Xtensive.Orm.Metadata.Type';p4_0='3';p4_1='Xtensive.Orm.Metadata.Extension';p5_0='288';p5_1='Microtech.Andalus.Workflow.Core.WorkflowStateHistoryRecord';p6_0='106';p6_1='Microtech.Andalus.Business.ApplicationVersion';p7_0='131';p7_1='Microtech.Andalus.Business.BusinessUnitReports';p8_0='133';p8_1='Microtech.Andalus.Business.BusinessUnitRoles';p9_0='135';p9_1='Microtech.Andalus.Business.BusinessUnitUsers';p10_0='146';p10_1='Microtech.Andalus.Business.CustInfo';p11_0='169';p11_1='Microtech.Andalus.Business.DisabledFeature';p12_0='277';p12_1='Microtech.Andalus.Business.VersionControl';p13_0='167';p13_1='Microtech.Andalus.Business.DeletedMaskSerials';p14_0='183';p14_1='Microtech.Andalus.Business.LastGeneratedMaskSerial';p15_0='196';p15_1='Microtech.Andalus.Business.MaskSerialBusinessUnit';p16_0='265';p16_1='Microtech.Andalus.Business.UserEntitySerial';p17_0='177';p17_1='Microtech.Andalus.Business.QueryableQueryBuilder.FormulaProperty';p18_0='199';p18_1='Microtech.Andalus.Business.QueryableQueryBuilder.MeasureQueryableEntity';p19_0='222';p19_1='Microtech.Andalus.Business.QueryableQueryBuilder.QueryableEntityUser';p20_0='220';p20_1='Microtech.Andalus.Business.QueryableQueryBuilder.QueryableEntityRole';p21_0='215';p21_1='Microtech.Andalus.Business.Core.PhoneNumber';p22_0='267';p22_1='Microtech.Andalus.Business.Security.UserFavorites';p23_0='200';p23_1='Microtech.Andalus.DataDictionary.MenuGroupEntity';p24_0='269';p24_1='Microtech.Andalus.Business.Security.UserFilters';p25_0='271';p25_1='Microtech.Andalus.Business.Security.UserPreferences']'
Original message 'ORA-08177: can't serialize access for this transaction
ORA-06512: at line 3'
our Environment consists of:
- Oracle 11g release 2
- Dataobjects.net 4.6.4
- its an ASP.net application hosted on IIS 7 on windows 64bit
- Visual Studio 2013 .net 4
Here is my Domain Configuration:
<domain name="Master" upgradeMode="Recreate" connectionUrl="oracle://InfinityMaster:password@Oracle32/test" validationMode="OnDemand">
<sessions>
<session name="Default" options="LegacyProfile,AllowSwitching,ReadRemovedObjects" />
</sessions>
<types>
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.BusinessProcessLogging" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.Business" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.DataDictionary" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.Drilling" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.Security" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.UserProfiles" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.Workflow" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.Schedule" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.Reporting" />
<add assembly="Microtech.Andalus.Globalization" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.BusinessProcessLogging" />
<add assembly="Microtech.Andalus.Business" namespace="Microtech.Andalus.AuditTrail" />
</types>
</domain>
Is there something special in building process, may be custom upgrade hanler or something else? It seems like transaction uses Serialized isolated level.
yes, there is custom upgradehandler for this model, but it do nothing but override CanUpgradeFrom and return true.
Do you build domain in different threads? It seems like one transaction locked rows of table and another transaction changing one of these. I tried to reproduce this situation but i can't. Maybe you can tell me more information?
Hello Alexey, no, only one thread, also we uses the same application on MS SQL Server with no error. we will install the latest version of Oracle DB and work of it instead of 11g, so i will inform you if the same issue still exist or not
Hello Alexey, after upgrade to Oracle Database 12c release 1, the same error still exists, also the database tables created.