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>

asked Jul 15 '14 at 05:45

ahmad%20emad's gravatar image

ahmad emad
26292931

edited Jul 15 '14 at 05:54

Is there something special in building process, may be custom upgrade hanler or something else? It seems like transaction uses Serialized isolated level.

(Jul 16 '14 at 04:23) Alexey Kulakov Alexey%20Kulakov's gravatar image

yes, there is custom upgradehandler for this model, but it do nothing but override CanUpgradeFrom and return true.

(Jul 16 '14 at 05:37) ahmad emad ahmad%20emad's gravatar image

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?

(Jul 16 '14 at 10:22) Alexey Kulakov Alexey%20Kulakov's gravatar image

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

(Jul 21 '14 at 04:45) ahmad emad ahmad%20emad's gravatar image

Hello Alexey, after upgrade to Oracle Database 12c release 1, the same error still exists, also the database tables created.

(Sep 22 '14 at 09:14) ahmad emad ahmad%20emad's gravatar image

One Answer:

Hello ahmad emad.

Try to add session configuration for system sessions with name "System" to domain configuration and set DefaultIsolatedLevel to ReadCommited. Then system transactions will have ReadCommited isolation level, not Serializable.

answered Sep 24 '14 at 04:39

Alexey%20Kulakov's gravatar image

Alexey Kulakov
77225

Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
toggle preview

powered by OSQA