Free cookie consent management tool by TermsFeed Policy Generator

Changeset 4092


Ignore:
Timestamp:
07/23/10 14:17:20 (14 years ago)
Author:
cneumuel
Message:

replaced transaction- and context management from Spring-advice by custom context management (see ContextFactory) (#1098)

Location:
branches/3.3-HiveMigration/sources/HeuristicLab.Hive
Files:
2 added
6 deleted
21 edited

Legend:

Unmodified
Added
Removed
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive 3.3.sln

    r4091 r4092  
    88Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Hive-3.3", "HeuristicLab.Hive\3.3\HeuristicLab.Hive-3.3.csproj", "{C92AAC8C-4D88-449C-ABA5-2B935D769842}"
    99  ProjectSection(ProjectDependencies) = postProject
     10    {55B89815-F3E7-4D09-9442-273F849141DD} = {55B89815-F3E7-4D09-9442-273F849141DD}
    1011    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84} = {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}
    1112    {21187322-52DD-4243-80A4-A85F0263E63B} = {21187322-52DD-4243-80A4-A85F0263E63B}
     
    8283Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.SpringNET-1.3.0", "HeuristicLab.ExtLibs\HeuristicLab.SpringNET\1.3.0\HeuristicLab.SpringNET-1.3.0.csproj", "{48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}"
    8384EndProject
     85Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.Hive.Test", "HeuristicLab.Hive.Test", "{4F2D8149-D608-42B3-BB1C-6909BDA2B350}"
     86EndProject
     87Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Hive.Server.Tests", "HeuristicLab.Hive.Server.Tests\HeuristicLab.Hive.Server.Tests.csproj", "{55B89815-F3E7-4D09-9442-273F849141DD}"
     88EndProject
    8489Global
    8590  GlobalSection(SolutionConfigurationPlatforms) = preSolution
    8691    Debug|Any CPU = Debug|Any CPU
     92    Debug|Mixed Platforms = Debug|Mixed Platforms
    8793    Debug|x64 = Debug|x64
    8894    Debug|x86 = Debug|x86
    8995    Release|Any CPU = Release|Any CPU
     96    Release|Mixed Platforms = Release|Mixed Platforms
    9097    Release|x64 = Release|x64
    9198    Release|x86 = Release|x86
     
    94101    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    95102    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Debug|Any CPU.Build.0 = Debug|Any CPU
     103    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    96104    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Debug|x64.ActiveCfg = Debug|x64
    97105    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Debug|x64.Build.0 = Debug|x64
     
    100108    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Release|Any CPU.ActiveCfg = Release|Any CPU
    101109    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Release|Any CPU.Build.0 = Release|Any CPU
     110    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Release|Mixed Platforms.ActiveCfg = Release|x86
    102111    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Release|x64.ActiveCfg = Release|x64
    103112    {5010BD86-23B7-4F8C-888A-76D21AD5266A}.Release|x64.Build.0 = Release|x64
     
    106115    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    107116    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
     117    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     118    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Debug|Mixed Platforms.Build.0 = Debug|x64
    108119    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Debug|x64.ActiveCfg = Debug|x64
    109120    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Debug|x64.Build.0 = Debug|x64
     
    112123    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
    113124    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Release|Any CPU.Build.0 = Release|Any CPU
     125    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Release|Mixed Platforms.ActiveCfg = Release|x64
     126    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Release|Mixed Platforms.Build.0 = Release|x64
    114127    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Release|x64.ActiveCfg = Release|x64
    115128    {898B31CF-81DC-453B-AEB3-BDF83197A7EE}.Release|x64.Build.0 = Release|x64
     
    118131    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    119132    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Debug|Any CPU.Build.0 = Debug|Any CPU
     133    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
     134    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
    120135    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Debug|x64.ActiveCfg = Debug|Any CPU
    121136    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Debug|x86.ActiveCfg = Debug|Any CPU
    122137    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Release|Any CPU.ActiveCfg = Release|Any CPU
    123138    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Release|Any CPU.Build.0 = Release|Any CPU
     139    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
     140    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Release|Mixed Platforms.Build.0 = Release|Any CPU
    124141    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Release|x64.ActiveCfg = Release|Any CPU
    125142    {C92AAC8C-4D88-449C-ABA5-2B935D769842}.Release|x86.ActiveCfg = Release|Any CPU
    126143    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    127144    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
     145    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     146    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Debug|Mixed Platforms.Build.0 = Debug|x64
    128147    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Debug|x64.ActiveCfg = Debug|x64
    129148    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Debug|x64.Build.0 = Debug|x64
     
    132151    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
    133152    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Release|Any CPU.Build.0 = Release|Any CPU
     153    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Release|Mixed Platforms.ActiveCfg = Release|x64
     154    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Release|Mixed Platforms.Build.0 = Release|x64
    134155    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Release|x64.ActiveCfg = Release|x64
    135156    {D59E852C-F205-4647-8C05-EB9ED1CF44E9}.Release|x64.Build.0 = Release|x64
     
    138159    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    139160    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Debug|Any CPU.Build.0 = Debug|Any CPU
     161    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     162    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Debug|Mixed Platforms.Build.0 = Debug|x64
    140163    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Debug|x64.ActiveCfg = Debug|x64
    141164    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Debug|x64.Build.0 = Debug|x64
     
    144167    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Release|Any CPU.ActiveCfg = Release|Any CPU
    145168    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Release|Any CPU.Build.0 = Release|Any CPU
     169    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Release|Mixed Platforms.ActiveCfg = Release|x64
     170    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Release|Mixed Platforms.Build.0 = Release|x64
    146171    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Release|x64.ActiveCfg = Release|x64
    147172    {CE2DFB48-6A9C-4507-96C6-5FC40E92035C}.Release|x64.Build.0 = Release|x64
     
    150175    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    151176    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
     177    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     178    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Debug|Mixed Platforms.Build.0 = Debug|x64
    152179    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Debug|x64.ActiveCfg = Debug|x64
    153180    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Debug|x64.Build.0 = Debug|x64
     
    156183    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
    157184    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Release|Any CPU.Build.0 = Release|Any CPU
     185    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Release|Mixed Platforms.ActiveCfg = Release|x64
     186    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Release|Mixed Platforms.Build.0 = Release|x64
    158187    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Release|x64.ActiveCfg = Release|x64
    159188    {AC3D84FF-F0D7-43F0-9C99-9F8DBE087E2C}.Release|x64.Build.0 = Release|x64
     
    162191    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    163192    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
     193    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    164194    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Debug|x64.ActiveCfg = Debug|x64
    165195    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Debug|x64.Build.0 = Debug|x64
     
    168198    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
    169199    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Release|Any CPU.Build.0 = Release|Any CPU
     200    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Release|Mixed Platforms.ActiveCfg = Release|x86
    170201    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Release|x64.ActiveCfg = Release|x64
    171202    {E3288D4B-7A51-499A-AC5B-019319CE51DC}.Release|x64.Build.0 = Release|x64
     
    174205    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    175206    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
     207    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     208    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Debug|Mixed Platforms.Build.0 = Debug|x64
    176209    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Debug|x64.ActiveCfg = Debug|x64
    177210    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Debug|x64.Build.0 = Debug|x64
     
    180213    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
    181214    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Release|Any CPU.Build.0 = Release|Any CPU
     215    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Release|Mixed Platforms.ActiveCfg = Release|x64
     216    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Release|Mixed Platforms.Build.0 = Release|x64
    182217    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Release|x64.ActiveCfg = Release|x64
    183218    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B}.Release|x64.Build.0 = Release|x64
     
    186221    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    187222    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Debug|Any CPU.Build.0 = Debug|Any CPU
     223    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    188224    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Debug|x64.ActiveCfg = Debug|x64
    189225    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Debug|x64.Build.0 = Debug|x64
     
    192228    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Release|Any CPU.ActiveCfg = Release|Any CPU
    193229    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Release|Any CPU.Build.0 = Release|Any CPU
     230    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Release|Mixed Platforms.ActiveCfg = Release|x86
    194231    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Release|x64.ActiveCfg = Release|x64
    195232    {AEB51212-CDBA-4FC6-A2EE-02359AA53ECE}.Release|x64.Build.0 = Release|x64
     
    198235    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    199236    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|Any CPU.Build.0 = Debug|Any CPU
     237    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    200238    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|x64.ActiveCfg = Debug|x64
    201239    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Debug|x64.Build.0 = Debug|x64
     
    204242    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Release|Any CPU.ActiveCfg = Release|Any CPU
    205243    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Release|Any CPU.Build.0 = Release|Any CPU
     244    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Release|Mixed Platforms.ActiveCfg = Release|x86
    206245    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Release|x64.ActiveCfg = Release|x64
    207246    {8B14A35E-DBDF-43EB-B019-23E9FBC5A35E}.Release|x64.Build.0 = Release|x64
     
    210249    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    211250    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Debug|Any CPU.Build.0 = Debug|Any CPU
     251    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    212252    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Debug|x64.ActiveCfg = Debug|x64
    213253    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Debug|x64.Build.0 = Debug|x64
     
    216256    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Release|Any CPU.ActiveCfg = Release|Any CPU
    217257    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Release|Any CPU.Build.0 = Release|Any CPU
     258    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Release|Mixed Platforms.ActiveCfg = Release|x86
    218259    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Release|x64.ActiveCfg = Release|x64
    219260    {1605256A-1CB3-44AB-AAFF-577093EE5789}.Release|x64.Build.0 = Release|x64
     
    222263    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    223264    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
     265    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     266    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Debug|Mixed Platforms.Build.0 = Debug|x64
    224267    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Debug|x64.ActiveCfg = Debug|x64
    225268    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Debug|x64.Build.0 = Debug|x64
     
    228271    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
    229272    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Release|Any CPU.Build.0 = Release|Any CPU
     273    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Release|Mixed Platforms.ActiveCfg = Release|x64
     274    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Release|Mixed Platforms.Build.0 = Release|x64
    230275    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Release|x64.ActiveCfg = Release|x64
    231276    {134F93D7-E7C8-4ECD-9923-7F63259A60D8}.Release|x64.Build.0 = Release|x64
     
    234279    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    235280    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Debug|Any CPU.Build.0 = Debug|Any CPU
     281    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     282    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Debug|Mixed Platforms.Build.0 = Debug|x64
    236283    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Debug|x64.ActiveCfg = Debug|x64
    237284    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Debug|x64.Build.0 = Debug|x64
     
    240287    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Release|Any CPU.ActiveCfg = Release|Any CPU
    241288    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Release|Any CPU.Build.0 = Release|Any CPU
     289    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Release|Mixed Platforms.ActiveCfg = Release|x64
     290    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Release|Mixed Platforms.Build.0 = Release|x64
    242291    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Release|x64.ActiveCfg = Release|x64
    243292    {C8FEDAC1-0326-4293-B585-F0FEDDEDFC11}.Release|x64.Build.0 = Release|x64
     
    246295    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    247296    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Debug|Any CPU.Build.0 = Debug|Any CPU
     297    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     298    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Debug|Mixed Platforms.Build.0 = Debug|x64
    248299    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Debug|x64.ActiveCfg = Debug|x64
    249300    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Debug|x64.Build.0 = Debug|x64
     
    252303    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Release|Any CPU.ActiveCfg = Release|Any CPU
    253304    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Release|Any CPU.Build.0 = Release|Any CPU
     305    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Release|Mixed Platforms.ActiveCfg = Release|x64
     306    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Release|Mixed Platforms.Build.0 = Release|x64
    254307    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Release|x64.ActiveCfg = Release|x64
    255308    {A04AE929-D0E1-466D-A9D3-BF3C4B2C209F}.Release|x64.Build.0 = Release|x64
     
    258311    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    259312    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Debug|Any CPU.Build.0 = Debug|Any CPU
     313    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    260314    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Debug|x64.ActiveCfg = Debug|x64
    261315    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Debug|x64.Build.0 = Debug|x64
     
    264318    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Release|Any CPU.ActiveCfg = Release|Any CPU
    265319    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Release|Any CPU.Build.0 = Release|Any CPU
     320    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Release|Mixed Platforms.ActiveCfg = Release|x86
    266321    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Release|x64.ActiveCfg = Release|x64
    267322    {42A1D075-6C12-4DD9-B0C2-C6F5210A8119}.Release|x64.Build.0 = Release|x64
     
    270325    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    271326    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Debug|Any CPU.Build.0 = Debug|Any CPU
     327    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     328    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Debug|Mixed Platforms.Build.0 = Debug|x64
    272329    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Debug|x64.ActiveCfg = Debug|x64
    273330    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Debug|x64.Build.0 = Debug|x64
     
    276333    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Release|Any CPU.ActiveCfg = Release|Any CPU
    277334    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Release|Any CPU.Build.0 = Release|Any CPU
     335    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Release|Mixed Platforms.ActiveCfg = Release|x64
     336    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Release|Mixed Platforms.Build.0 = Release|x64
    278337    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Release|x64.ActiveCfg = Release|x64
    279338    {4D5A2A16-66C2-431D-9AA3-BD3041E64B84}.Release|x64.Build.0 = Release|x64
     
    282341    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    283342    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
     343    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     344    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Debug|Mixed Platforms.Build.0 = Debug|x64
    284345    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Debug|x64.ActiveCfg = Debug|x64
    285346    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Debug|x64.Build.0 = Debug|x64
     
    288349    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
    289350    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Release|Any CPU.Build.0 = Release|Any CPU
     351    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Release|Mixed Platforms.ActiveCfg = Release|x64
     352    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Release|Mixed Platforms.Build.0 = Release|x64
    290353    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Release|x64.ActiveCfg = Release|x64
    291354    {A4499DDD-D1B8-414F-98F6-903C2C71BEB0}.Release|x64.Build.0 = Release|x64
     
    294357    {679E977A-117B-456E-8594-2A4DEADB658B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    295358    {679E977A-117B-456E-8594-2A4DEADB658B}.Debug|Any CPU.Build.0 = Debug|Any CPU
     359    {679E977A-117B-456E-8594-2A4DEADB658B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     360    {679E977A-117B-456E-8594-2A4DEADB658B}.Debug|Mixed Platforms.Build.0 = Debug|x64
    296361    {679E977A-117B-456E-8594-2A4DEADB658B}.Debug|x64.ActiveCfg = Debug|x64
    297362    {679E977A-117B-456E-8594-2A4DEADB658B}.Debug|x64.Build.0 = Debug|x64
     
    300365    {679E977A-117B-456E-8594-2A4DEADB658B}.Release|Any CPU.ActiveCfg = Release|Any CPU
    301366    {679E977A-117B-456E-8594-2A4DEADB658B}.Release|Any CPU.Build.0 = Release|Any CPU
     367    {679E977A-117B-456E-8594-2A4DEADB658B}.Release|Mixed Platforms.ActiveCfg = Release|x64
     368    {679E977A-117B-456E-8594-2A4DEADB658B}.Release|Mixed Platforms.Build.0 = Release|x64
    302369    {679E977A-117B-456E-8594-2A4DEADB658B}.Release|x64.ActiveCfg = Release|x64
    303370    {679E977A-117B-456E-8594-2A4DEADB658B}.Release|x64.Build.0 = Release|x64
     
    306373    {9076697B-C151-46CD-95BC-1D059492B478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    307374    {9076697B-C151-46CD-95BC-1D059492B478}.Debug|Any CPU.Build.0 = Debug|Any CPU
     375    {9076697B-C151-46CD-95BC-1D059492B478}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     376    {9076697B-C151-46CD-95BC-1D059492B478}.Debug|Mixed Platforms.Build.0 = Debug|x64
    308377    {9076697B-C151-46CD-95BC-1D059492B478}.Debug|x64.ActiveCfg = Debug|x64
    309378    {9076697B-C151-46CD-95BC-1D059492B478}.Debug|x64.Build.0 = Debug|x64
     
    312381    {9076697B-C151-46CD-95BC-1D059492B478}.Release|Any CPU.ActiveCfg = Release|Any CPU
    313382    {9076697B-C151-46CD-95BC-1D059492B478}.Release|Any CPU.Build.0 = Release|Any CPU
     383    {9076697B-C151-46CD-95BC-1D059492B478}.Release|Mixed Platforms.ActiveCfg = Release|x64
     384    {9076697B-C151-46CD-95BC-1D059492B478}.Release|Mixed Platforms.Build.0 = Release|x64
    314385    {9076697B-C151-46CD-95BC-1D059492B478}.Release|x64.ActiveCfg = Release|x64
    315386    {9076697B-C151-46CD-95BC-1D059492B478}.Release|x64.Build.0 = Release|x64
     
    318389    {89F4BC52-C174-481E-9BD2-3814171020E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    319390    {89F4BC52-C174-481E-9BD2-3814171020E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
     391    {89F4BC52-C174-481E-9BD2-3814171020E8}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
    320392    {89F4BC52-C174-481E-9BD2-3814171020E8}.Debug|x64.ActiveCfg = Debug|x64
    321393    {89F4BC52-C174-481E-9BD2-3814171020E8}.Debug|x64.Build.0 = Debug|x64
     
    324396    {89F4BC52-C174-481E-9BD2-3814171020E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
    325397    {89F4BC52-C174-481E-9BD2-3814171020E8}.Release|Any CPU.Build.0 = Release|Any CPU
     398    {89F4BC52-C174-481E-9BD2-3814171020E8}.Release|Mixed Platforms.ActiveCfg = Release|x86
    326399    {89F4BC52-C174-481E-9BD2-3814171020E8}.Release|x64.ActiveCfg = Release|x64
    327400    {89F4BC52-C174-481E-9BD2-3814171020E8}.Release|x64.Build.0 = Release|x64
     
    330403    {21187322-52DD-4243-80A4-A85F0263E63B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    331404    {21187322-52DD-4243-80A4-A85F0263E63B}.Debug|Any CPU.Build.0 = Debug|Any CPU
     405    {21187322-52DD-4243-80A4-A85F0263E63B}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
     406    {21187322-52DD-4243-80A4-A85F0263E63B}.Debug|Mixed Platforms.Build.0 = Debug|x64
    332407    {21187322-52DD-4243-80A4-A85F0263E63B}.Debug|x64.ActiveCfg = Debug|x64
    333408    {21187322-52DD-4243-80A4-A85F0263E63B}.Debug|x64.Build.0 = Debug|x64
     
    336411    {21187322-52DD-4243-80A4-A85F0263E63B}.Release|Any CPU.ActiveCfg = Release|Any CPU
    337412    {21187322-52DD-4243-80A4-A85F0263E63B}.Release|Any CPU.Build.0 = Release|Any CPU
     413    {21187322-52DD-4243-80A4-A85F0263E63B}.Release|Mixed Platforms.ActiveCfg = Release|x64
     414    {21187322-52DD-4243-80A4-A85F0263E63B}.Release|Mixed Platforms.Build.0 = Release|x64
    338415    {21187322-52DD-4243-80A4-A85F0263E63B}.Release|x64.ActiveCfg = Release|x64
    339416    {21187322-52DD-4243-80A4-A85F0263E63B}.Release|x64.Build.0 = Release|x64
     
    342419    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    343420    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
     421    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
     422    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Debug|Mixed Platforms.Build.0 = Debug|x86
    344423    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Debug|x64.ActiveCfg = Debug|x64
    345424    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Debug|x64.Build.0 = Debug|x64
     
    348427    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
    349428    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|Any CPU.Build.0 = Release|Any CPU
     429    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|Mixed Platforms.ActiveCfg = Release|x86
     430    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|Mixed Platforms.Build.0 = Release|x86
    350431    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|x64.ActiveCfg = Release|x64
    351432    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|x64.Build.0 = Release|x64
    352433    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|x86.ActiveCfg = Release|x86
    353434    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1}.Release|x86.Build.0 = Release|x86
     435    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|Any CPU.ActiveCfg = Debug|x86
     436    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|Any CPU.Build.0 = Debug|x86
     437    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
     438    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|Mixed Platforms.Build.0 = Debug|x86
     439    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|x64.ActiveCfg = Debug|x86
     440    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|x86.ActiveCfg = Debug|x86
     441    {55B89815-F3E7-4D09-9442-273F849141DD}.Debug|x86.Build.0 = Debug|x86
     442    {55B89815-F3E7-4D09-9442-273F849141DD}.Release|Any CPU.ActiveCfg = Release|x86
     443    {55B89815-F3E7-4D09-9442-273F849141DD}.Release|Mixed Platforms.ActiveCfg = Release|x86
     444    {55B89815-F3E7-4D09-9442-273F849141DD}.Release|Mixed Platforms.Build.0 = Release|x86
     445    {55B89815-F3E7-4D09-9442-273F849141DD}.Release|x64.ActiveCfg = Release|x86
     446    {55B89815-F3E7-4D09-9442-273F849141DD}.Release|x86.ActiveCfg = Release|x86
     447    {55B89815-F3E7-4D09-9442-273F849141DD}.Release|x86.Build.0 = Release|x86
    354448  EndGlobalSection
    355449  GlobalSection(SolutionProperties) = preSolution
     
    379473    {5CDACE54-5FB2-4344-A21C-963F63CB7C2B} = {BD1DE6F6-A188-4D1F-9681-BA7104818370}
    380474    {48D4AEB1-2247-4B58-8B63-20B81BF8D4B1} = {98B4B360-4F14-4BC5-92F2-9B81F6C712DA}
     475    {55B89815-F3E7-4D09-9442-273F849141DD} = {4F2D8149-D608-42B3-BB1C-6909BDA2B350}
    381476  EndGlobalSection
    382477EndGlobal
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ApplicationConstants.cs

    r3931 r4092  
    3131    public static System.Data.IsolationLevel ISOLATION_LEVEL = IsolationLevel.ReadUncommitted;
    3232
    33     public static System.Transactions.IsolationLevel ISOLATION_LEVEL_SCOPE =
    34       System.Transactions.IsolationLevel.ReadUncommitted;
     33    /// <summary>
     34    /// ReadUncommitted to minimize deadlocks.
     35    /// </summary>
     36    public static System.Transactions.IsolationLevel ISOLATION_LEVEL_SCOPE = System.Transactions.IsolationLevel.ReadUncommitted;
    3537    public static int HEARTBEAT_MAX_DIF = 120; // value in seconds
    3638    public static int JOB_TIME_TO_LIVE = 5;
     
    8789    public static string RESPONSE_COMMUNICATOR_JOB_WAS_ABORTED = "Job was aborted";
    8890
    89     public static string RESPONSE_COMMUNICATOR_FETCH_OR_FORCEFETCH_CALENDAR =
    90       "new Calendar must be fetched / force fetched";
     91    public static string RESPONSE_COMMUNICATOR_FETCH_OR_FORCEFETCH_CALENDAR = "new Calendar must be fetched / force fetched";
    9192
    9293    public static string RESPONSE_JOB_ALL_JOBS = "Job.AllJobs";
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/ClientCommunicator.cs

    r4091 r4092  
    4040  public class ClientCommunicator : IClientCommunicator,
    4141    IInternalClientCommunicator {
    42     private static Dictionary<Guid, DateTime> lastHeartbeats =
    43       new Dictionary<Guid, DateTime>();
    44     private static Dictionary<Guid, int> newAssignedJobs =
    45       new Dictionary<Guid, int>();
    46     private static Dictionary<Guid, int> pendingJobs =
    47       new Dictionary<Guid, int>();
    48 
    49     private static ReaderWriterLockSlim heartbeatLock =
    50       new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
     42    private static Dictionary<Guid, DateTime> lastHeartbeats = new Dictionary<Guid, DateTime>();
     43    private static Dictionary<Guid, int> newAssignedJobs = new Dictionary<Guid, int>();
     44    private static Dictionary<Guid, int> pendingJobs = new Dictionary<Guid, int>();
     45
     46    private static ReaderWriterLockSlim heartbeatLock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
    5147
    5248    //private ISessionFactory factory;
     
    8177      Logger.Debug("Server Heartbeat ticked");
    8278
     79      // [chn] why is transaction management done here
    8380      using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
    84 
    8581        List<ClientDto> allClients = new List<ClientDto>(DaoLocator.ClientDao.FindAll());
    8682
     
    144140        }
    145141        CheckForPendingJobs();
    146         DaoLocator.DestroyContext();
     142//        DaoLocator.DestroyContext();
    147143        scope.Complete();
    148144      }
     
    595591    }
    596592
    597 
    598593    /// <summary>
    599594    /// the client can send job results during calculating
     
    616611    }
    617612
    618 
    619613    public ResponseResultReceived ProcessSnapshot(Guid clientId, Guid jobId, byte[] result, double percentage, Exception exception) {
    620614      return ProcessJobResult(clientId, jobId, result, percentage, exception, false);
     
    628622    /// <returns></returns>                       
    629623    public Response Logout(Guid clientId) {
    630 
    631624      Logger.Info("Client logged out " + clientId);
    632625
     
    720713
    721714      return response;
    722 
    723715    }
    724716
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DaoLocator.cs

    r4091 r4092  
    6262      }
    6363    }
    64 
    65     public static void DestroyContext() {
    66       if (ContextFactory.IsContextNull()) {
    67         ContextFactory.Context.Dispose();
    68         ContextFactory.Context = null;
    69       }
    70     }
    71 
    7264  }
    7365}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DbTestApp.cs

    r4091 r4092  
    3333using HeuristicLab.PluginInfrastructure;
    3434using HeuristicLab.Tracing;
     35using HeuristicLab.Hive.Server.DataAccess;
    3536
    3637namespace HeuristicLab.Hive.Server {
    3738  [Application("Hive DB Test App", "Test Application for the Hive DataAccess Layer")]
    3839  internal class HiveDbTestApplication : ApplicationBase {
     40    private IContextFactory contextFactory = ServiceLocator.GetContextFactory();
     41
    3942    /*private void TestJobStreaming() {
    4043      ISessionFactory factory =
     
    150153
    151154      JobDto job = new JobDto {
    152                                 Client = c1,
    153                                 CoresNeeded = 2,
    154                                 DateCreated = DateTime.Now,
    155                                 MemoryNeeded = 500,
    156                                 Percentage = 0,
    157                                 Priority = 1,
    158                                 State = State.offline
    159                               };
     155        Client = c1,
     156        CoresNeeded = 2,
     157        DateCreated = DateTime.Now,
     158        MemoryNeeded = 500,
     159        Percentage = 0,
     160        Priority = 1,
     161        State = State.offline
     162      };
    160163
    161164      job = DaoLocator.JobDao.Insert(job);
     
    214217    }
    215218
    216 
     219   
    217220    public override void Run() {
    218221      //TestClientGroupAdapter();
     
    221224      //TestJobResultStreaming();
    222225      //TestJobResultDeserialization();
    223 
    224       //if (ContextFactory.Context.DatabaseExists())
    225       //  ContextFactory.Context.DeleteDatabase();
    226       //ContextFactory.Context.CreateDatabase();
    227       //TestLINQImplementation();
    228       TestLinqFileHandling();
    229       //StressTest();
    230 
    231       //SpeedTest();
    232       //TestJobBytearrFetching();
    233       //TestJobStreamFetching();
     226      using (contextFactory.GetContext(false)) {
     227        if (contextFactory.CurrentContext.DatabaseExists())
     228          contextFactory.CurrentContext.DeleteDatabase();
     229        contextFactory.CurrentContext.CreateDatabase();
     230      }
     231
     232      using (contextFactory.GetContext()) {
     233        //TestLINQImplementation();
     234        TestLinqFileHandling();
     235
     236        //StressTest();
     237
     238        //SpeedTest();
     239        //TestJobBytearrFetching();
     240        //TestJobStreamFetching();
     241      }
     242
    234243    }
    235244
    236245    private void WriteToJobWithByte(object jobid) {
    237246      using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
    238                                                            new TransactionOptions
    239                                                            {IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE})
    240         ) {
     247                                                           new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
    241248        Logger.Info("starting bytestuff for job " + jobid);
    242249        DaoLocator.JobDao.SetBinaryJobFile((Guid)jobid, jobmap[(Guid)jobid]);
     
    248255    private void UpdateJobStatus(object jobid) {
    249256      using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
    250                                                            new TransactionOptions
    251                                                            {IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE})
    252         ) {
     257                                                           new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
    253258        Thread.Sleep(1500);
    254259        Logger.Info("starting now");
     
    267272      List<Thread> jobupdateThreads = new List<Thread>();
    268273      List<Thread> jobProgressThreads = new List<Thread>();
    269      
     274
    270275      Random r = new Random();
    271276      Stack<JobDto> jobs = new Stack<JobDto>(DaoLocator.JobDao.FindAll());
    272277      Logger.Info("Fetched jobs");
    273       for (int x = 0; x < 10 && jobs.Count > 0; x++ ) {
     278      for (int x = 0; x < 10 && jobs.Count > 0; x++) {
    274279        Logger.Info("Creating data for Job");
    275280        JobDto job = jobs.Pop();
    276         byte[] jobarr = new byte[50*1024*1024];
     281        byte[] jobarr = new byte[50 * 1024 * 1024];
    277282        for (int i = 0; i < jobarr.Length; i++) {
    278           jobarr[i] = (byte) r.Next(255);
     283          jobarr[i] = (byte)r.Next(255);
    279284        }
    280285        jobmap.Add(job.Id, jobarr);
    281286      }
    282287      Logger.Info("filled");
    283       foreach(KeyValuePair<Guid, byte[]> kvp in jobmap) {
    284         Thread tjob = new Thread(new ParameterizedThreadStart(WriteToJobWithByte));     
     288      foreach (KeyValuePair<Guid, byte[]> kvp in jobmap) {
     289        Thread tjob = new Thread(new ParameterizedThreadStart(WriteToJobWithByte));
    285290        Thread tupdate = new Thread(new ParameterizedThreadStart(UpdateJobStatus));
    286291        jobupdateThreads.Add(tupdate);
     
    298303
    299304
    300     private
    301       void TestJobStreamFetching() {
     305    private void TestJobStreamFetching() {
    302306      //using (TransactionScope scope = new TransactionScope()) {
    303307
    304       HiveDataContext context = ContextFactory.Context;
    305 
    306       ContextFactory.Context.Connection.Open
    307         ();
    308       ContextFactory.Context.Transaction
    309         =
    310         ContextFactory.Context.Connection.BeginTransaction
    311           ();
    312 
     308      HiveDataContext context = contextFactory.CurrentContext as HiveDataContext;
     309
     310      context.Connection.Open();
     311      context.Transaction = context.Connection.BeginTransaction();
    313312
    314313      ClientFacade facade = new ClientFacade();
    315 
    316314      Stream stream = facade.SendStreamedJob(new Guid("F5CFB334-66A0-417C-A585-71711BA21D3F"));
    317315
    318 
    319316      byte[] buffer = new byte[3024];
    320 
    321317      int read = 0;
    322 
    323       while ((
    324                read
    325                =
    326                stream.Read
    327                  (
    328                  buffer
    329                  , 0,
    330                  buffer.Length
    331                  )) > 0) {}
    332 
    333       stream.Close
    334         ();
     318      while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) { }
     319      stream.Close();
    335320
    336321      //Stream stream = DaoLocator.JobDao.GetSerializedJobStream(new Guid("bbb51f87-4e2f-4499-a9b6-884e589c78b6"));
     
    338323    }
    339324
    340     private
    341       void TestJobBytearrFetching() {
     325    private void TestJobBytearrFetching() {
    342326      byte[] arr = DaoLocator.JobDao.GetBinaryJobFile(new Guid("A3386907-2B3C-4976-BE07-04D660D40A5B"));
    343       Console.WriteLine
    344         (
    345         arr
    346         );
    347     }
    348 
    349     private
    350       void SpeedTest() {
     327      Console.WriteLine(arr);
     328    }
     329
     330    private void SpeedTest() {
    351331      DateTime start = new DateTime();
    352332
     
    356336
    357337      TimeSpan used = end - start;
    358       Console.WriteLine
    359         (
    360         used.TotalMilliseconds
    361         );
     338      Console.WriteLine(used.TotalMilliseconds);
    362339    }
    363340  }
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/ClientFacade.cs

    r4091 r4092  
    3333using HeuristicLab.Hive.Server.Core.InternalInterfaces;
    3434using System.Transactions;
     35using HeuristicLab.Hive.Server.LINQDataAccess;
     36using HeuristicLab.Hive.Server.DataAccess;
    3537
    3638namespace HeuristicLab.Hive.Server.Core {
    37   [ServiceBehavior(InstanceContextMode =
    38     InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple)]
    39   public class ClientFacade: IClientFacade {
     39  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple)]
     40  public class ClientFacade : IClientFacade {
    4041
    41     public ClientFacade() {     
     42    public ClientFacade() {
    4243    }
    4344
    4445    private IClientCommunicator clientCommunicator = ServiceLocator.GetClientCommunicator();
    4546
     47    private IContextFactory contextFactory = ServiceLocator.GetContextFactory();
     48
    4649    #region IClientCommunicator Members
    4750
    4851    public Response Login(ClientDto clientInfo) {
    49       return clientCommunicator.Login(clientInfo);
     52      using (contextFactory.GetContext()) {
     53        return clientCommunicator.Login(clientInfo);
     54      }
    5055    }
    5156
    5257    public ResponseHB ProcessHeartBeat(HeartBeatData hbData) {
    53       return clientCommunicator.ProcessHeartBeat(hbData);
     58      using (contextFactory.GetContext()) {
     59        return clientCommunicator.ProcessHeartBeat(hbData);
     60      }
    5461    }
    5562
    5663    public ResponseJob SendJob(Guid clientId) {
    57       return clientCommunicator.SendJob(clientId);
     64      using (contextFactory.GetContext()) {
     65        return clientCommunicator.SendJob(clientId);
     66      }
    5867    }
    5968
    60     /*public ResponseSerializedJob SendSerializedJob(Guid clientId) {
    61       return clientCommunicator.SendSerializedJob(clientId);
    62     } */
    63 
    64     public ResponseResultReceived StoreFinishedJobResult(Guid clientId,
    65       Guid jobId,
    66       byte[] result,
    67       double percentage,
    68       Exception exception) {
    69       return clientCommunicator.StoreFinishedJobResult(clientId, jobId, result, percentage, exception);
     69    public ResponseResultReceived StoreFinishedJobResult(Guid clientId, Guid jobId, byte[] result, double percentage, Exception exception) {
     70      using (contextFactory.GetContext()) {
     71        return clientCommunicator.StoreFinishedJobResult(clientId, jobId, result, percentage, exception);
     72      }
    7073    }
    7174
    7275    public Response Logout(Guid clientId) {
    73       return clientCommunicator.Logout(clientId);
     76      using (contextFactory.GetContext()) {
     77        return clientCommunicator.Logout(clientId);
     78      }
    7479    }
    7580
    7681    public Response IsJobStillNeeded(Guid jobId) {
    77       return clientCommunicator.IsJobStillNeeded(jobId);
     82      using (contextFactory.GetContext()) {
     83        return clientCommunicator.IsJobStillNeeded(jobId);
     84      }
    7885    }
    7986
    8087    public ResponsePlugin SendPlugins(List<HivePluginInfoDto> pluginList) {
    81       return clientCommunicator.SendPlugins(pluginList);
     88      using (contextFactory.GetContext()) {
     89        return clientCommunicator.SendPlugins(pluginList);     
     90      }
    8291    }
    8392
    8493    public ResponseResultReceived ProcessSnapshot(Guid clientId, Guid jobId, byte[] result, double percentage, Exception exception) {
    85       return clientCommunicator.ProcessSnapshot(clientId, jobId, result, percentage, exception);
     94      using (contextFactory.GetContext()) {
     95        return clientCommunicator.ProcessSnapshot(clientId, jobId, result, percentage, exception);
     96      }
    8697    }
    8798
    8899
    89100    public ResponseCalendar GetCalendar(Guid clientId) {
    90       return clientCommunicator.GetCalendar(clientId);
     101      using (contextFactory.GetContext()) {
     102        return clientCommunicator.GetCalendar(clientId);
     103      }
    91104    }
    92105
    93     public Response SetCalendarStatus(Guid clientId, CalendarState state) {
    94       return clientCommunicator.SetCalendarStatus(clientId, state);     
     106    public Response SetCalendarStatus(Guid clientId, CalendarState state) {
     107      using (contextFactory.GetContext()) {
     108        return clientCommunicator.SetCalendarStatus(clientId, state);
     109      }
    95110    }
    96111    #endregion
     
    98113    #region IClientFacade Members
    99114
    100     [SpringTransaction(UserTransaction = true)]
     115    /// <summary>
     116    /// Do not use automatic transactions here
     117    /// </summary>
    101118    public Stream SendStreamedJob(Guid clientId) {
    102       MultiStream stream = new MultiStream();
     119      using (contextFactory.GetContext(false)) {
     120        MultiStream stream = new MultiStream();
    103121
    104       ResponseJob job = null;
     122        ResponseJob job = null;
    105123
    106       job = this.SendJob(clientId);     
     124        job = this.SendJob(clientId);
    107125
    108       //first send response
    109       stream.AddStream(new StreamedObject<ResponseJob>(job));
     126        //first send response
     127        stream.AddStream(new StreamedObject<ResponseJob>(job));
    110128
    111       IJobManager jobManager = ServiceLocator.GetJobManager();
    112       IInternalJobManager internalJobManager = (IInternalJobManager) jobManager;
    113      
    114       //second stream the job binary data
    115       MemoryStream memoryStream = new MemoryStream();     
    116       if(job.Job != null)
    117         stream.AddStream(new MemoryStream(internalJobManager.GetSerializedJobDataById(job.Job.Id)));
    118      
    119       OperationContext clientContext = OperationContext.Current;
     129        IJobManager jobManager = ServiceLocator.GetJobManager();
     130        IInternalJobManager internalJobManager = (IInternalJobManager)jobManager;
     131
     132        //second stream the job binary data
     133        MemoryStream memoryStream = new MemoryStream();
     134        if (job.Job != null)
     135          stream.AddStream(new MemoryStream(internalJobManager.GetSerializedJobDataById(job.Job.Id)));
     136
     137        OperationContext clientContext = OperationContext.Current;
    120138        clientContext.OperationCompleted += new EventHandler(delegate(object sender, EventArgs args) {
    121139          if (stream != null) {
     
    124142        });
    125143
    126       return stream;
     144        return stream;
     145      }
    127146    }
    128147
    129148    public Stream SendStreamedPlugins(List<HivePluginInfoDto> pluginList) {
    130       return new StreamedObject<ResponsePlugin>(this.SendPlugins(pluginList));
     149      using (contextFactory.GetContext()) {
     150        return new StreamedObject<ResponsePlugin>(this.SendPlugins(pluginList));
     151      }
    131152    }
    132153
    133154    public ResponseResultReceived StoreFinishedJobResultStreamed(Stream stream) {
    134       return ((IInternalClientCommunicator)clientCommunicator).ProcessJobResult(stream, true);
    135     }
     155      using (contextFactory.GetContext()) {
     156        return ((IInternalClientCommunicator)clientCommunicator).ProcessJobResult(stream, true);
     157      }
     158    }
    136159
    137160    public ResponseResultReceived ProcessSnapshotStreamed(Stream stream) {
    138       return ((IInternalClientCommunicator)clientCommunicator).ProcessJobResult(stream, false);
     161      using (contextFactory.GetContext()) {
     162        return ((IInternalClientCommunicator)clientCommunicator).ProcessJobResult(stream, false); 
     163      }
    139164    }
    140165    #endregion
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/ExecutionEngineFacade.cs

    r4091 r4092  
    2727using HeuristicLab.Hive.Contracts;
    2828using HeuristicLab.Hive.Contracts.BusinessObjects;
     29using HeuristicLab.Hive.Server.DataAccess;
    2930
    3031namespace HeuristicLab.Hive.Server.Core {
    31   public class ExecutionEngineFacade: IExecutionEngineFacade {
     32  public class ExecutionEngineFacade : IExecutionEngineFacade {
    3233
    33     private IJobManager jobManager =
    34       ServiceLocator.GetJobManager();
     34    private IJobManager jobManager = ServiceLocator.GetJobManager();
     35    private IContextFactory contextFactory = ServiceLocator.GetContextFactory();
    3536
    3637    public ExecutionEngineFacade() {
    37      
    3838    }
    3939
     
    4141
    4242    public ResponseObject<JobDto> AddJob(SerializedJob job) {
    43       return jobManager.AddNewJob(job);
     43      using (contextFactory.GetContext()) {
     44        return jobManager.AddNewJob(job);
     45      }
    4446    }
    4547
    46     public ResponseObject<JobDto> AddJobWithGroupStrings(SerializedJob job, IEnumerable<string> resources) {     
    47       return jobManager.AddJobWithGroupStrings(job, resources);
     48    public ResponseObject<JobDto> AddJobWithGroupStrings(SerializedJob job, IEnumerable<string> resources) {
     49      using (contextFactory.GetContext()) {
     50        return jobManager.AddJobWithGroupStrings(job, resources);
     51      }
    4852    }
    4953
    5054    public Response RequestSnapshot(Guid jobId) {
    51       return jobManager.RequestSnapshot(jobId);
     55      using (contextFactory.GetContext()) {
     56        return jobManager.RequestSnapshot(jobId);
     57      }
    5258    }
    5359
    54     public ResponseObject<SerializedJob>
    55       GetLastSerializedResult(Guid jobId, bool requested, bool snapshot) {
    56       return jobManager.GetLastSerializedJobResultOf(jobId, requested, snapshot);
     60    public ResponseObject<SerializedJob> GetLastSerializedResult(Guid jobId, bool requested, bool snapshot) {
     61      using (contextFactory.GetContext()) {
     62        return jobManager.GetLastSerializedJobResultOf(jobId, requested, snapshot);
     63      }
    5764    }
    5865
    5966    public Response AbortJob(Guid jobId) {
    60       return jobManager.AbortJob(jobId);
     67      using (contextFactory.GetContext()) {
     68        return jobManager.AbortJob(jobId);
     69      }
    6170    }
    6271
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/ServerConsoleFacade.cs

    r4091 r4092  
    3030using HeuristicLab.Hive.Server.Core.InternalInterfaces;
    3131using System.ServiceModel;
     32using HeuristicLab.Hive.Server.DataAccess;
    3233
    3334
    3435namespace HeuristicLab.Hive.Server.Core {
    35   public class ServerConsoleFacade: IServerConsoleFacade {
    36     private IClientManager clientManager =
    37       ServiceLocator.GetClientManager();
    38 
    39     private IJobManager jobManager =
    40       ServiceLocator.GetJobManager();
     36  public class ServerConsoleFacade : IServerConsoleFacade {
     37    private IClientManager clientManager = ServiceLocator.GetClientManager();
     38
     39    private IJobManager jobManager = ServiceLocator.GetJobManager();
    4140
    4241    private IHivePermissionManager secMan = ServiceLocator.GetHivePermissionManager();
    4342
     43    private IContextFactory contextFactory = ServiceLocator.GetContextFactory();
     44
    4445    public Guid sessionID = Guid.Empty;
    4546
    46     public ServerConsoleFacade() {     
     47    public ServerConsoleFacade() {
    4748    }
    4849
    4950    public Response Login(string username, string password) {
    50       Response resp = new Response();
    51      
    52       sessionID = secMan.Login(username, password);
    53       if (sessionID == Guid.Empty) {
    54         resp.Success = false;
    55         resp.StatusMessage = ApplicationConstants.RESPONSE_SERVERCONSOLE_LOGIN_FAILED;
    56       } else {
    57         resp.Success = true;
    58         resp.StatusMessage =
    59           ApplicationConstants.RESPONSE_SERVERCONSOLE_LOGIN_SUCCESS;
    60       }
    61       return resp;
     51      using (contextFactory.GetContext()) {
     52        Response resp = new Response();
     53
     54        sessionID = secMan.Login(username, password);
     55        if (sessionID == Guid.Empty) {
     56          resp.Success = false;
     57          resp.StatusMessage = ApplicationConstants.RESPONSE_SERVERCONSOLE_LOGIN_FAILED;
     58        } else {
     59          resp.Success = true;
     60          resp.StatusMessage =
     61            ApplicationConstants.RESPONSE_SERVERCONSOLE_LOGIN_SUCCESS;
     62        }
     63        return resp;
     64      }
    6265    }
    6366
    6467
    6568    public ResponseList<ClientDto> GetAllClients() {
    66       secMan.Authorize("AccessClients", sessionID, Guid.Empty);
    67       return clientManager.GetAllClients();
     69      using (contextFactory.GetContext()) {
     70        secMan.Authorize("AccessClients", sessionID, Guid.Empty);
     71        return clientManager.GetAllClients();
     72      }
    6873    }
    6974
    7075    public ResponseList<ClientGroupDto> GetAllClientGroups() {
    71       //secMan.Authorize("AccessClientGroup", sessionID, Guid.Empty);
    72       return clientManager.GetAllClientGroups();
     76      using (contextFactory.GetContext()) {
     77        //secMan.Authorize("AccessClientGroup", sessionID, Guid.Empty);
     78        return clientManager.GetAllClientGroups();
     79      }
    7380    }
    7481
    7582    public ResponseList<UpTimeStatisticsDto> GetAllUpTimeStatistics() {
    76       secMan.Authorize("AccessStatistics", sessionID, Guid.Empty);
    77       return clientManager.GetAllUpTimeStatistics();
     83      using (contextFactory.GetContext()) {
     84        secMan.Authorize("AccessStatistics", sessionID, Guid.Empty);
     85        return clientManager.GetAllUpTimeStatistics();
     86      }
    7887    }
    7988
    8089    public ResponseObject<ClientGroupDto> AddClientGroup(ClientGroupDto clientGroup) {
    81       secMan.Authorize("AddClientGroup", sessionID, Guid.Empty);
    82       return clientManager.AddClientGroup(clientGroup);
     90      using (contextFactory.GetContext()) {
     91        secMan.Authorize("AddClientGroup", sessionID, Guid.Empty);
     92        return clientManager.AddClientGroup(clientGroup);
     93      }
    8394    }
    8495
    8596    public Response AddResourceToGroup(Guid clientGroupId, ResourceDto resource) {
    86       secMan.Authorize("AddResource", sessionID, Guid.Empty);               
    87       return clientManager.AddResourceToGroup(clientGroupId, resource);
     97      using (contextFactory.GetContext()) {
     98        secMan.Authorize("AddResource", sessionID, Guid.Empty);
     99        return clientManager.AddResourceToGroup(clientGroupId, resource);
     100      }
    88101    }
    89102
    90103    public Response DeleteResourceFromGroup(Guid clientGroupId, Guid resourceId) {
     104      using (contextFactory.GetContext()) {
    91105        return clientManager.DeleteResourceFromGroup(clientGroupId, resourceId);
     106      }
    92107    }
    93108
    94109    public ResponseList<JobDto> GetAllJobs() {
    95       secMan.Authorize("AccessJobs", sessionID, Guid.Empty);
    96       return jobManager.GetAllJobs();
     110      using (contextFactory.GetContext()) {
     111        secMan.Authorize("AccessJobs", sessionID, Guid.Empty);
     112        return jobManager.GetAllJobs();
     113      }
    97114    }
    98115
    99116    public ResponseList<JobDto> GetAllJobsWithFilter(State jobState, int offset, int count) {
    100       secMan.Authorize("AccessJobs", sessionID, Guid.Empty);
    101       return jobManager.GetAllJobsWithFilter(jobState, offset, count);
     117      using (contextFactory.GetContext()) {
     118        secMan.Authorize("AccessJobs", sessionID, Guid.Empty);
     119        return jobManager.GetAllJobsWithFilter(jobState, offset, count);
     120      }
    102121    }
    103122
    104123    public ResponseObject<JobDto> GetJobById(Guid jobId) {
    105       secMan.Authorize("AccessJobs", sessionID, jobId);
    106       return jobManager.GetJobById(jobId);
     124      using (contextFactory.GetContext()) {
     125        secMan.Authorize("AccessJobs", sessionID, jobId);
     126        return jobManager.GetJobById(jobId);
     127      }
    107128    }
    108129
    109130    public ResponseObject<JobDto> GetJobByIdWithDetails(Guid jobId) {
    110       secMan.Authorize("AccessJobs", sessionID, jobId);
    111       return jobManager.GetJobByIdWithDetails(jobId);
     131      using (contextFactory.GetContext()) {
     132        secMan.Authorize("AccessJobs", sessionID, jobId);
     133        return jobManager.GetJobByIdWithDetails(jobId);
     134      }
    112135    }
    113136
    114137    public ResponseObject<JobDto> AddNewJob(SerializedJob job) {
    115       secMan.Authorize("AddJob", sessionID, job.JobInfo.Id);
    116       return jobManager.AddNewJob(job);
     138      using (contextFactory.GetContext()) {
     139        secMan.Authorize("AddJob", sessionID, job.JobInfo.Id);
     140        return jobManager.AddNewJob(job);
     141      }
    117142    }
    118143
    119144    public ResponseObject<JobDto> GetLastJobResultOf(Guid jobId) {
    120       secMan.Authorize("AccessJobResults", sessionID, jobId);
    121       return jobManager.GetLastJobResultOf(jobId);
     145      using (contextFactory.GetContext()) {
     146        secMan.Authorize("AccessJobResults", sessionID, jobId);
     147        return jobManager.GetLastJobResultOf(jobId);
     148      }
    122149    }
    123150
    124151    public ResponseObject<SerializedJob> GetLastSerializedJobResultOf(Guid jobId, bool requested, bool snapshot) {
    125       secMan.Authorize("AccessJobResults", sessionID, jobId);
    126       return jobManager.GetLastSerializedJobResultOf(jobId, requested, snapshot);
     152      using (contextFactory.GetContext()) {
     153        secMan.Authorize("AccessJobResults", sessionID, jobId);
     154        return jobManager.GetLastSerializedJobResultOf(jobId, requested, snapshot);
     155      }
    127156    }
    128157
    129158    public ResponseList<JobResult> GetAllJobResults(Guid jobId) {
    130       secMan.Authorize("AccessJobResults", sessionID, jobId); 
    131       return jobManager.GetAllJobResults(jobId);
     159      using (contextFactory.GetContext()) {
     160        secMan.Authorize("AccessJobResults", sessionID, jobId);
     161        return jobManager.GetAllJobResults(jobId);
     162      }
    132163    }
    133164
    134165    public Response RemoveJob(Guid jobId) {
    135       secMan.Authorize("RemoveJob", sessionID, jobId);
    136       return jobManager.RemoveJob(jobId);
     166      using (contextFactory.GetContext()) {
     167        secMan.Authorize("RemoveJob", sessionID, jobId);
     168        return jobManager.RemoveJob(jobId);
     169      }
    137170    }
    138171
    139172    public Response RequestSnapshot(Guid jobId) {
    140       secMan.Authorize("AccessJobResults", sessionID, jobId); 
    141       return jobManager.RequestSnapshot(jobId);
     173      using (contextFactory.GetContext()) {
     174        secMan.Authorize("AccessJobResults", sessionID, jobId);
     175        return jobManager.RequestSnapshot(jobId);
     176      }
    142177    }
    143178
    144179    public Response AbortJob(Guid jobId) {
    145       secMan.Authorize("AbortJob", sessionID, Guid.Empty);
    146       return jobManager.AbortJob(jobId);
     180      using (contextFactory.GetContext()) {
     181        secMan.Authorize("AbortJob", sessionID, Guid.Empty);
     182        return jobManager.AbortJob(jobId);
     183      }
    147184    }
    148185
    149186    public ResponseObject<List<ClientGroupDto>> GetAllGroupsOfResource(Guid resourceId) {
    150       secMan.Authorize("AccessUserGroup", sessionID, Guid.Empty);
    151       return clientManager.GetAllGroupsOfResource(resourceId);
     187      using (contextFactory.GetContext()) {
     188        secMan.Authorize("AccessUserGroup", sessionID, Guid.Empty);
     189        return clientManager.GetAllGroupsOfResource(resourceId);
     190      }
    152191    }
    153192
    154193    public Response DeleteClientGroup(Guid clientGroupId) {
    155       secMan.Authorize("DeleteClientGroup", sessionID, Guid.Empty);
    156       return clientManager.DeleteClientGroup(clientGroupId);
     194      using (contextFactory.GetContext()) {
     195        secMan.Authorize("DeleteClientGroup", sessionID, Guid.Empty);
     196        return clientManager.DeleteClientGroup(clientGroupId);
     197      }
    157198    }
    158199
    159200    public ResponseList<ProjectDto> GetAllProjects() {
    160       secMan.Authorize("AccessProjects", sessionID, Guid.Empty);
    161       return jobManager.GetAllProjects();
     201      using (contextFactory.GetContext()) {
     202        secMan.Authorize("AccessProjects", sessionID, Guid.Empty);
     203        return jobManager.GetAllProjects();
     204      }
    162205    }
    163206
    164207    public Response CreateProject(ProjectDto project) {
    165       secMan.Authorize("CreateProjects", sessionID, Guid.Empty);
    166       return jobManager.CreateProject(project);
     208      using (contextFactory.GetContext()) {
     209        secMan.Authorize("CreateProjects", sessionID, Guid.Empty);
     210        return jobManager.CreateProject(project);
     211      }
    167212    }
    168213
    169214    public Response ChangeProject(ProjectDto project) {
    170       secMan.Authorize("ChangeProjects", sessionID, Guid.Empty);
    171       return jobManager.ChangeProject(project);
     215      using (contextFactory.GetContext()) {
     216        secMan.Authorize("ChangeProjects", sessionID, Guid.Empty);
     217        return jobManager.ChangeProject(project);
     218      }
    172219    }
    173220
    174221    public Response DeleteProject(Guid projectId) {
    175       secMan.Authorize("DeleteProjects", sessionID, projectId);
    176       return jobManager.DeleteProject(projectId);
     222      using (contextFactory.GetContext()) {
     223        secMan.Authorize("DeleteProjects", sessionID, projectId);
     224        return jobManager.DeleteProject(projectId);
     225      }
    177226    }
    178227
    179228    public ResponseList<JobDto> GetJobsByProject(Guid projectId) {
    180       secMan.Authorize("AccessJobs", sessionID, Guid.Empty);
    181       return jobManager.GetJobsByProject(projectId);
     229      using (contextFactory.GetContext()) {
     230        secMan.Authorize("AccessJobs", sessionID, Guid.Empty);
     231        return jobManager.GetJobsByProject(projectId);
     232      }
    182233    }
    183234
    184235    public ResponseList<AppointmentDto> GetUptimeCalendarForResource(Guid guid) {
    185       return clientManager.GetUptimeCalendarForResource(guid);
     236      using (contextFactory.GetContext()) {
     237        return clientManager.GetUptimeCalendarForResource(guid);
     238      }
    186239    }
    187240
    188241    public Response SetUptimeCalendarForResource(Guid guid, IEnumerable<AppointmentDto> appointments, bool isForced) {
    189       return clientManager.SetUptimeCalendarForResource(guid, appointments, isForced);
     242      using (contextFactory.GetContext()) {
     243        return clientManager.SetUptimeCalendarForResource(guid, appointments, isForced);
     244      }
    190245    }
    191246
    192247    public ResponseObject<JobDto> AddJobWithGroupStrings(SerializedJob job, IEnumerable<string> resources) {
    193       return jobManager.AddJobWithGroupStrings(job, resources);
     248      using (contextFactory.GetContext()) {
     249        return jobManager.AddJobWithGroupStrings(job, resources);
     250      }
    194251    }
    195252  }
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj

    r4091 r4092  
    112112    <Compile Include="Authorization\PolicyCollection.cs" />
    113113    <Compile Include="ClientCommunicator.cs" />
    114     <Compile Include="ClientFacade.cs" />
     114    <Compile Include="Facades\ClientFacade.cs" />
    115115    <Compile Include="ClientManager.cs" />
    116116    <Compile Include="DaoLocator.cs" />
    117117    <Compile Include="DbTestApp.cs" />
    118118    <Compile Include="DefaultScheduler.cs" />
    119     <Compile Include="ExecutionEngineFacade.cs" />
     119    <Compile Include="Facades\ExecutionEngineFacade.cs" />
    120120    <Compile Include="Authorization\HivePermissionManager.cs" />
    121121    <Compile Include="HiveServerCorePlugin.cs" />
     
    128128    <Compile Include="LifecycleManager.cs" />
    129129    <Compile Include="Properties\AssemblyInfo.cs" />
    130     <Compile Include="ServerConsoleFacade.cs" />
     130    <Compile Include="Facades\ServerConsoleFacade.cs" />
    131131    <Compile Include="ServiceLocator.cs" />
    132132    <Compile Include="Properties\Settings.Designer.cs">
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/JobManager.cs

    r4060 r4092  
    3737using System.Transactions;
    3838using HeuristicLab.Hive.Server.LINQDataAccess;
    39 using IsolationLevel=System.Transactions.IsolationLevel;
     39using IsolationLevel = System.Transactions.IsolationLevel;
    4040
    4141namespace HeuristicLab.Hive.Server.Core {
     
    5959
    6060
    61     private void checkForDeadJobs() {
     61    private void CheckForDeadJobs() {
    6262      Logger.Info("Searching for dead Jobs");
    63       using (
    64         TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
    65                                                       new TransactionOptions
    66                                                       {IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE})) {
     63
     64      // [chn] why is transaction management done here?
     65      using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
    6766        List<JobDto> allJobs = new List<JobDto>(DaoLocator.JobDao.FindAll());
    6867        foreach (JobDto curJob in allJobs) {
     
    7372        scope.Complete();
    7473      }
    75       DaoLocator.DestroyContext();
     74      // DaoLocator.DestroyContext();
    7675    }
    7776
    7877    private void lifecycleManager_OnStartup(object sender, EventArgs e) {
    7978      Logger.Info("Startup Event Fired, Checking DB for consistency");
    80       checkForDeadJobs();
     79      CheckForDeadJobs();
    8180      Logger.Info("Startup Event Done");
    8281    }
     
    8483    private void lifecycleManager_OnShutdown(object sender, EventArgs e) {
    8584      Logger.Info("Startup Event Fired, Checking DB for consistency");
    86       checkForDeadJobs();
     85      CheckForDeadJobs();
    8786      Logger.Info("Startup Event Done");
    8887    }
     
    129128        response.Success = true;
    130129        response.StatusMessage = ApplicationConstants.RESPONSE_JOB_GET_JOB_BY_ID;
    131       }
    132       else {
     130      } else {
    133131        response.Success = false;
    134132        response.StatusMessage = ApplicationConstants.RESPONSE_JOB_JOB_DOESNT_EXIST;
     
    146144
    147145        job.Obj.Client = DaoLocator.ClientDao.GetClientForJob(jobId);
    148       }
    149       else {
     146      } else {
    150147        job.Success = false;
    151148        job.StatusMessage = ApplicationConstants.RESPONSE_JOB_JOB_DOESNT_EXIST;
     
    196193        response.Obj = job.JobInfo;
    197194        response.StatusMessage = ApplicationConstants.RESPONSE_JOB_JOB_ADDED;
    198       }
    199       else {
     195      } else {
    200196        response.Success = false;
    201197        response.StatusMessage = ApplicationConstants.RESPONSE_JOB_JOB_NULL;
     
    255251
    256252      //if it's NOT a snapshot, NEITHER request NOR is it finished
    257       if(!requested && !snapshot && job.State != State.finished) {     
     253      if (!requested && !snapshot && job.State != State.finished) {
    258254        response.Success = true;
    259255        response.StatusMessage = ApplicationConstants.RESPONSE_JOB_RESULT_NOT_YET_HERE;
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/LifecycleManager.cs

    r4060 r4092  
    3737    private static event EventHandler OnStartup;
    3838    private static event EventHandler OnShutdown;
     39
    3940    #region ILifecycleManager Members
    4041
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Properties/AssemblyInfo.cs

    r4091 r4092  
    5555// by using the '*' as shown below:
    5656// [assembly: AssemblyVersion("1.0.*")]
    57 [assembly: AssemblyVersion("3.3.0.4078")]
    58 [assembly: AssemblyFileVersion("3.3.0.4078")]
    59 [assembly: AssemblyBuildDate("2010/07/23 09:04:35")]
     57[assembly: AssemblyVersion("3.3.0.4091")]
     58[assembly: AssemblyFileVersion("3.3.0.4091")]
     59[assembly: AssemblyBuildDate("2010/07/23 14:14:54")]
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/ServiceLocator.cs

    r4060 r4092  
    3131using HeuristicLab.Security.Contracts.Interfaces;
    3232
    33 /// <summary>
    34 /// The service locator for the server core
    35 /// </summary>
    36 public class ServiceLocator {
    37   private static IClientManager clientManager = null;
     33namespace HeuristicLab.Hive.Server.Core {
     34  /// <summary>
     35  /// The service locator for the server core
     36  /// </summary>
     37  public class ServiceLocator {
     38    private static IClientManager clientManager = null;
    3839
    39   private static IJobManager jobManager = null;
     40    private static IJobManager jobManager = null;
    4041
    41   private static IClientCommunicator clientCommunicator = null;
     42    private static IClientCommunicator clientCommunicator = null;
    4243
    43   private static ILifecycleManager lifecycleManager = null;
     44    private static ILifecycleManager lifecycleManager = null;
    4445
    45   private static ISessionFactory sessionFactory = null;
     46    private static ISessionFactory sessionFactory = null;
    4647
    47   private static IScheduler scheduler = null;
     48    private static IScheduler scheduler = null;
    4849
    49   private static IPermissionManager permManager = null;
     50    private static IPermissionManager permManager = null;
    5051
    51   private static IHivePermissionManager hivePermManager = null;
     52    private static IHivePermissionManager hivePermManager = null;
    5253
    53   /// <summary>
    54   /// Gets the client manager
    55   /// </summary>
    56   /// <returns></returns>
    57   [MethodImpl(MethodImplOptions.Synchronized)]
    58   public static IClientManager GetClientManager() {
    59     if (clientManager == null)
    60       clientManager = new ClientManager();
     54    private static IContextFactory contextFactory = null;
    6155
    62     return clientManager;
    63   }
     56    /// <summary>
     57    /// Gets the client manager
     58    /// </summary>
     59    /// <returns></returns>
     60    [MethodImpl(MethodImplOptions.Synchronized)]
     61    public static IClientManager GetClientManager() {
     62      if (clientManager == null)
     63        clientManager = new ClientManager();
    6464
    65   /// <summary>
    66   /// Gets the job manager
    67   /// </summary>
    68   /// <returns></returns>
    69   [MethodImpl(MethodImplOptions.Synchronized)]
    70   public static IJobManager GetJobManager() {
    71     if (jobManager == null)
    72       jobManager = new JobManager();
    73 
    74     return jobManager;
    75   }
    76 
    77   /// <summary>
    78   /// Gets the client Communicator
    79   /// </summary>
    80   /// <returns></returns>
    81   [MethodImpl(MethodImplOptions.Synchronized)]
    82   public static IClientCommunicator GetClientCommunicator() {
    83     if (clientCommunicator == null)
    84       clientCommunicator = new ClientCommunicator();
    85 
    86     return clientCommunicator;
    87   }
    88 
    89   /// <summary>
    90   /// Gets the lifecycle manager
    91   /// </summary>
    92   /// <returns></returns>
    93   [MethodImpl(MethodImplOptions.Synchronized)]
    94   public static ILifecycleManager GetLifecycleManager() {
    95     if (lifecycleManager == null) {
    96       lifecycleManager = new LifecycleManager();
    97     }
    98     return lifecycleManager;
    99   }
    100 
    101   /// <summary>
    102   /// Gets the db session factory
    103   /// </summary>
    104   /// <returns></returns>
    105   [MethodImpl(MethodImplOptions.Synchronized)]
    106   public static ISessionFactory GetSessionFactory() {
    107     if (sessionFactory == null) {
    108       sessionFactory =
    109         ApplicationManager.Manager.GetInstances<ISessionFactory>().First();
    110 
    111       sessionFactory.DbConnectionType =
    112         typeof(SqlConnection);
    113      
    114       sessionFactory.DbConnectionString =
    115         HeuristicLab.Hive.Server.Core.Properties.Settings.Default.HiveServerConnectionString;
     65      return clientManager;
    11666    }
    11767
    118     return sessionFactory;
    119   }
     68    /// <summary>
     69    /// Gets the job manager
     70    /// </summary>
     71    /// <returns></returns>
     72    [MethodImpl(MethodImplOptions.Synchronized)]
     73    public static IJobManager GetJobManager() {
     74      if (jobManager == null)
     75        jobManager = new JobManager();
    12076
    121   /// <summary>
    122   /// Gets the scheduler
    123   /// </summary>
    124   /// <returns></returns>
    125   [MethodImpl(MethodImplOptions.Synchronized)]
    126   public static IScheduler GetScheduler() {
    127     if (scheduler == null) {
    128       scheduler = ApplicationManager.Manager.GetInstances<IScheduler>().First();
     77      return jobManager;
    12978    }
    13079
    131     return scheduler;
    132   }
     80    /// <summary>
     81    /// Gets the client Communicator
     82    /// </summary>
     83    /// <returns></returns>
     84    [MethodImpl(MethodImplOptions.Synchronized)]
     85    public static IClientCommunicator GetClientCommunicator() {
     86      if (clientCommunicator == null)
     87        clientCommunicator = new ClientCommunicator();
    13388
    134   /// <summary>
    135   /// Gets the permission manager
    136   /// </summary>
    137   /// <returns></returns>
    138   [MethodImpl(MethodImplOptions.Synchronized)] 
    139   public static IPermissionManager GetPermissionManager() {
    140     if (permManager == null)
    141       permManager = ApplicationManager.Manager.GetInstances<IPermissionManager>().First();
    142     return permManager;
    143    
    144   }
     89      return clientCommunicator;
     90    }
    14591
    146   /// <summary>
    147   /// Gets the permission manager
    148   /// </summary>
    149   /// <returns></returns>
    150   [MethodImpl(MethodImplOptions.Synchronized)]
    151   public static IHivePermissionManager GetHivePermissionManager() {
    152     if (hivePermManager == null)
    153       hivePermManager = ApplicationManager.Manager.GetInstances<IHivePermissionManager>().First();
    154     return hivePermManager;
     92    /// <summary>
     93    /// Gets the lifecycle manager
     94    /// </summary>
     95    /// <returns></returns>
     96    [MethodImpl(MethodImplOptions.Synchronized)]
     97    public static ILifecycleManager GetLifecycleManager() {
     98      if (lifecycleManager == null) {
     99        lifecycleManager = new LifecycleManager();
     100      }
     101      return lifecycleManager;
     102    }
    155103
     104    /// <summary>
     105    /// Gets the db session factory
     106    /// </summary>
     107    /// <returns></returns>
     108    [MethodImpl(MethodImplOptions.Synchronized)]
     109    public static ISessionFactory GetSessionFactory() {
     110      if (sessionFactory == null) {
     111        sessionFactory = ApplicationManager.Manager.GetInstances<ISessionFactory>().First();
     112        sessionFactory.DbConnectionType = typeof(SqlConnection);
     113        sessionFactory.DbConnectionString = HeuristicLab.Hive.Server.Core.Properties.Settings.Default.HiveServerConnectionString;
     114      }
     115
     116      return sessionFactory;
     117    }
     118
     119    /// <summary>
     120    /// Gets the scheduler
     121    /// </summary>
     122    /// <returns></returns>
     123    [MethodImpl(MethodImplOptions.Synchronized)]
     124    public static IScheduler GetScheduler() {
     125      if (scheduler == null) {
     126        scheduler = ApplicationManager.Manager.GetInstances<IScheduler>().First();
     127      }
     128
     129      return scheduler;
     130    }
     131
     132    /// <summary>
     133    /// Gets the permission manager
     134    /// </summary>
     135    /// <returns></returns>
     136    [MethodImpl(MethodImplOptions.Synchronized)]
     137    public static IPermissionManager GetPermissionManager() {
     138      if (permManager == null)
     139        permManager = ApplicationManager.Manager.GetInstances<IPermissionManager>().First();
     140      return permManager;
     141
     142    }
     143
     144    /// <summary>
     145    /// Gets the permission manager
     146    /// </summary>
     147    /// <returns></returns>
     148    [MethodImpl(MethodImplOptions.Synchronized)]
     149    public static IHivePermissionManager GetHivePermissionManager() {
     150      if (hivePermManager == null)
     151        hivePermManager = ApplicationManager.Manager.GetInstances<IHivePermissionManager>().First();
     152      return hivePermManager;
     153
     154    }
     155
     156    /// <summary>
     157    /// Gets the database context manager
     158    /// </summary>
     159    /// <returns></returns>
     160    [MethodImpl(MethodImplOptions.Synchronized)]
     161    public static IContextFactory GetContextFactory() {
     162      if (contextFactory == null)
     163        contextFactory = ApplicationManager.Manager.GetInstances<IContextFactory>().First();
     164      return contextFactory;
     165    }
    156166  }
    157167}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.DataAccess/3.3/HeuristicLab.Hive.Server.DataAccess-3.3.csproj

    r4078 r4092  
    8686  -->
    8787  <ItemGroup>
     88    <Compile Include="DataAccessException.cs" />
    8889    <Compile Include="IClientConfigAdapter.cs" />
    8990    <Compile Include="IClientConfigDao.cs" />
    9091    <Compile Include="IClientDao.cs" />
    9192    <Compile Include="IClientGroupDao.cs" />
     93    <Compile Include="IContextFactory.cs" />
    9294    <Compile Include="IGenericDao.cs" />
    9395    <Compile Include="IJobDao.cs" />
     
    132134    <Reference Include="System" />
    133135    <Reference Include="System.Data" />
     136    <Reference Include="System.Data.Linq" />
    134137    <Reference Include="System.Transactions" />
    135138    <Reference Include="System.Xml" />
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/BaseDao.cs

    r4050 r4092  
    88namespace HeuristicLab.Hive.Server.LINQDataAccess {
    99  public abstract class BaseDao<TBusiness, TDatabaseEntity> {
     10    private static ContextFactory contextFactory = new ContextFactory();
     11
    1012    public static HiveDataContext Context {
    1113      get {
    12         return ContextFactory.Context;
     14        return contextFactory.CurrentContext as HiveDataContext;
    1315      }
    1416    }
     
    1719      try {
    1820        Context.SubmitChanges(ConflictMode.ContinueOnConflict);
    19       } catch (ChangeConflictException e) {
    20        
     21      } catch (ChangeConflictException e) {
    2122        Logger.Warn("Concurrency Exception! " + e.Message);
    2223        foreach (ObjectChangeConflict conflict in Context.ChangeConflicts) {
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/ClientConfigDao.cs

    r3578 r4092  
    88namespace HeuristicLab.Hive.Server.LINQDataAccess {
    99  public class ClientConfigDao: BaseDao<ClientConfigDto, ClientConfig>, IClientConfigDao {
    10 
    1110
    1211    #region IGenericDao<ClientConfigDto,ClientConfig> Members
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/ContextFactory.cs

    r4074 r4092  
    33using System.Linq;
    44using System.Text;
    5 using System.Data.Common;
    6 using System.Data.SqlClient;
     5using HeuristicLab.Hive.Server.DataAccess;
     6using System.Collections;
     7using System.Data.Linq;
     8using System.Transactions;
     9using HeuristicLab.PluginInfrastructure;
     10using HeuristicLab.Hive.Contracts;
    711using HeuristicLab.Tracing;
     12using System.Threading;
     13
    814
    915namespace HeuristicLab.Hive.Server.LINQDataAccess {
    10   public class ContextFactory {
    11     [ThreadStatic]
    12     private static HiveDataContext _hiveDataContext = null;
     16  /// <summary>
     17  /// This class handles creates one Context for each Thread which asks for one.
     18  /// If one Thread calls GetContext several times, it always gets the same Context object.
     19  /// A context object is removed from the cache when it is disposed.
     20  ///
     21  /// Every context has a DB-Transaction over its livetime. After using the context object
     22  /// it has to be disposed in order to finish the corresponding transaction.
     23  /// </summary>
     24  class ContextFactory : IContextFactory {
     25    private static IDictionary<object, HiveDataContext> contexts = new Dictionary<object, HiveDataContext>();
     26    private static IDictionary<object, TransactionScope> transactions = new Dictionary<object, TransactionScope>();
    1327
    14     [ThreadStatic]
    15     private static SqlTransaction _currentTransaction = null;
    16 
    17     public static HiveDataContext Context {
     28    private static IContextFactory instance = null;
     29    public static IContextFactory Instance {
    1830      get {
    19         if (_hiveDataContext == null) {
    20           Logger.Debug("Requested new Data Context");
    21           _hiveDataContext = new HiveDataContext("Data Source=127.0.0.1;Initial Catalog=HeuristicLab.Hive;Integrated Security=SSPI");
    22           _hiveDataContext.CommandTimeout = 240;
    23         }
    24         return _hiveDataContext;       
    25       }
    26       set {       
    27         _hiveDataContext = value;
     31        if (instance == null)
     32          instance = new ContextFactory();
     33        return instance;
    2834      }
    2935    }
    3036
    31     public static SqlTransaction CurrentTransaction {
    32       get {
    33         return _currentTransaction;
    34       } set {
    35         _currentTransaction = value;
    36       }
     37    #region IContextManager Members
     38
     39    public IDisposable GetContext() {
     40      return GetContext(true);
    3741    }
    3842
    39     public static bool IsContextNull() {
    40       return _hiveDataContext == null;
     43    public IDisposable GetContext(bool withTransaction) {
     44      Logger.Debug("opening transaction");
     45      object obj = Thread.CurrentThread;
     46
     47      if (contexts.ContainsKey(obj)) {
     48        throw new DataAccessException("Context for this Thread already defined");
     49      }
     50
     51      Logger.Debug("creating context");
     52      DisposableHiveDataContext context = CreateContext();
     53      context.OnDisposing += new EventHandler(context_OnDisposing);
     54      contexts.Add(obj, context);
     55
     56      if (withTransaction) {
     57        TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE });
     58        Logger.Debug("creating  transaction");
     59       
     60        transactions.Add(obj, transaction);
     61      }
     62      return context;
    4163    }
     64
     65    private static DisposableHiveDataContext CreateContext() {
     66      return new DisposableHiveDataContext("Data Source=127.0.0.1;Initial Catalog=HeuristicLab.Hive;Integrated Security=SSPI");
     67    }
     68
     69    void context_OnDisposing(object sender, EventArgs e) {
     70      RemoveContext();
     71      RemoveAndCompleteTransaction();
     72    }
     73
     74    public void RollbackTransaction() {
     75      Logger.Debug("rolling back transaction");
     76      object obj = Thread.CurrentThread;
     77
     78      TransactionScope transaction = transactions[obj];
     79      transaction.Dispose();
     80    }
     81
     82    public void RemoveContext() {
     83      Logger.Debug("removing context");
     84      object obj = Thread.CurrentThread;
     85
     86      contexts.Remove(obj);
     87      // context gets disposed implicitly, when it is used as IDisposable
     88    }
     89
     90    public void RemoveAndCompleteTransaction() {
     91      Logger.Debug("completing transaction");
     92      object obj = Thread.CurrentThread;
     93
     94      // context does not always have an associated transaction
     95      if (transactions.ContainsKey(obj)) {
     96        transactions[obj].Complete();
     97        transactions[obj].Dispose();
     98        transactions.Remove(obj);
     99      }
     100    }
     101
     102    public DataContext CurrentContext {
     103      get {
     104        object obj = Thread.CurrentThread;
     105        if (contexts.ContainsKey(obj)) {
     106          return contexts[obj];
     107        } else {
     108          return null;
     109        }
     110      }
     111    }
     112
     113    #endregion
     114  }
     115
     116  /// <summary>
     117  /// Offers an event when it gets disposed
     118  /// </summary>
     119  class DisposableHiveDataContext : HiveDataContext {
     120
     121    public DisposableHiveDataContext(string connection) : base(connection) { }
     122
     123    protected override void Dispose(bool disposing) {
     124      base.Dispose(disposing);
     125      if (OnDisposing != null)
     126        OnDisposing(this, new EventArgs());
     127    }
     128
     129    public event EventHandler OnDisposing;
    42130  }
    43131}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/HeuristicLab.Hive.Server.LINQDataAccess-3.3.csproj

    r4091 r4092  
    9191    </Reference>
    9292    <Reference Include="System.Drawing" />
     93    <Reference Include="System.Transactions" />
    9394    <Reference Include="System.Windows.Forms" />
    9495    <Reference Include="System.Xml.Linq">
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/VarBinaryStream.cs

    r3578 r4092  
    150150    dataColumn, string keyColumn, Guid key) {
    151151      _connection = connection;
    152       _transaction = (SqlTransaction) ContextFactory.Context.Transaction;
     152      _transaction = (SqlTransaction) ContextFactory.Instance.CurrentContext.Transaction;
    153153      /*
    154154      if (_connection.State == ConnectionState.Closed) {
     
    263263      if (_connection != null) {
    264264        _connection.Close();
    265         ContextFactory.Context.Dispose();
    266         ContextFactory.Context = null;
     265        ContextFactory.Instance.CurrentContext.Dispose();
     266        ContextFactory.Instance.RemoveContext();
    267267        Logger.Info("Connection and Context disposed and set null");
    268268      }
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/App.config

    r4090 r4092  
    3636      <object id="executionEngineFacade" singleton="false" type="HeuristicLab.Hive.Server.Core.ExecutionEngineFacade, HeuristicLab.Hive.Server.Core-3.3" />
    3737      <object id="serverConsoleFacade" singleton="false" type="HeuristicLab.Hive.Server.Core.ServerConsoleFacade, HeuristicLab.Hive.Server.Core-3.3" />
     38     
    3839      <object id="serviceOperation" type="Spring.Aop.Support.SdkRegularExpressionMethodPointcut, Spring.Aop">
    3940        <property name="patterns">
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/Properties/AssemblyInfo.cs

    r4091 r4092  
    5151//      Revision
    5252//
    53 [assembly: AssemblyVersion("3.3.0.4078")]
    54 [assembly: AssemblyFileVersion("3.3.0.4078")]
     53[assembly: AssemblyVersion("3.3.0.4091")]
     54[assembly: AssemblyFileVersion("3.3.0.4091")]
Note: See TracChangeset for help on using the changeset viewer.