[Firebird-net-provider] Fwd: Fbembed + .NET Provider 5.9.1. Memory leak?
Hi all. I have server, after a while, it starts continuously consume memory. All approaches I've used before didn't show that this was particular memory leak in server code. To detect memory leak I've used vmmap, that showed private memory (VirtualAlloc) is consumed (attach1.png https://1drv.ms/i/s!AsU_6wa3CeYThLFeMp4JNF5PKg24Ig). Screenshot doesn't fully shows, but there are a lot of 64 kb chunks that was allocated during work of server. VirtualAlloc allocations aren't handled by +ust (Create user mode stack trace database) global flag, so I wasn't able to retrieve stacks for these allocations. But, there is Application Verifier that does tracks allocations and stack traces. So I've used AppVerif+WinDbg and obtained following information: 0:053> !avrf -vs -a 0x7FF5CB77 Searching call tracker @ 01dc4fcd2fc0 with 16384 valid entries ... -- VirtualAlloc: 7FF5CB77 1 101000 4 7ffbc5ebac57: KERNELBASE!VirtualAlloc+0x47 7ffb9b124817: vfbasics!AVrfpVirtualAlloc+0x47 00018002e11c: fbembed!Firebird::MemoryPool::external_alloc+0xCC 00018002ef76: fbembed!Firebird::MemoryPool::internal_alloc+0x286 00018002d68e: fbembed!Firebird::MemoryPool::allocate_nothrow+0x21E 00018002e8de: fbembed!Firebird::MemoryPool::getExtent+0x2E 00018002eebf: fbembed!Firebird::MemoryPool::internal_alloc+0x1CF 00018002d68e: fbembed!Firebird::MemoryPool::allocate_nothrow+0x21E 00018002d44e: fbembed!Firebird::MemoryPool::allocate+0xE 000180116d8c: fbembed!PAR_gen_field+0x2C 0001800e3a53: fbembed!copy+0x3D3 0001800e3791: fbembed!copy+0x111 0001800e3791: fbembed!copy+0x111 0001800e6808: fbembed!make_validation+0x278 0001800e7464: fbembed!pass1_modify+0x2F4 0001800e0004: fbembed!CMP_pass1+0x1084 0001800e085e: fbembed!CMP_pass1+0x18DE 0001800e085e: fbembed!CMP_pass1+0x18DE 0001800e085e: fbembed!CMP_pass1+0x18DE 0001800de76b: fbembed!CMP_make_request+0x8B 0001800dc809: fbembed!CMP_compile2+0xD9 00018006f03c: fbembed!JRD_compile+0x8C 00018022f1c5: fbembed!prepare+0x9E5 00018022b114: fbembed!DSQL_prepare+0x2C4 000180084324: fbembed!jrd8_prepare+0x2C4 000180051c2a: fbembed!isc_dsql_prepare_m+0x2EA 00018005174d: fbembed!isc_dsql_prepare+0x15D 7ffb5fa6cea4: +0x7FFB5FA6CEA4 0:053> !ip2md 0x7FFB5FA6CEA4 MethodDesc: 7ffb5fccad38 Method Name: DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr[], FirebirdSql.Data.Client.Native.Handle.TransactionHandle ByRef, FirebirdSql.Data.Client.Native.Handle.StatementHandle ByRef, Int16, Byte[], Int16, IntPtr) Class:7ffb5f001fd0 MethodTable: 7ffb5f002048 mdToken: 0600 Module: 7ffb5ef5ea38 IsJitted: yes CodeAddr: 7ffb5fa6cc00 Transparency: Safe critical As you can see, root of stack that allocates memory is this row https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/ 2cedb4fb49c6bb1a7d9221914cea6060d643b6ff/Provider/src/FirebirdSql.Data. FirebirdClient/Client/Native/FesStatement.cs#L268. My first suggestion was that something in chain FbConnection->FbConnectionInternal->FesDatabase->FesStatement-> StatementHandle wasn't properly disposed/cleared. But as I can see by !dumpheap -stat -type StatementHandle, all handles already disposed or in finalizer queue, not mention that in dump there are only 50 StatementHandles, that is much less than potentially needed to occupate 700+ Mb. Any ideas what happens here? Why memory allocated in PAR_gen_field isn't deallocated after StatementHandle disposed? -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
[Firebird-net-provider] Fbembed + .NET Provider 5.9.1. Memory leak?
Hi all. I have server, after a while, it starts continuously consume memory. All approaches I've used before didn't show that this was particular memory leak in server code. To detect memory leak I've used vmmap, that showed private memory (VirtualAlloc) is consumed (attach1.png https://1drv.ms/i/s!AsU_6wa3CeYThLFeMp4JNF5PKg24Ig). Screenshot doesn't fully shows, but there are a lot of 64 kb chunks that was allocated during work of server. VirtualAlloc allocations aren't handled by +ust (Create user mode stack trace database) global flag, so I wasn't able to retrieve stacks for these allocations. But, there is Application Verifier that does tracks allocations and stack traces. So I've used AppVerif+WinDbg and obtained following information: 0:053> !avrf -vs -a 0x7FF5CB77 Searching call tracker @ 01dc4fcd2fc0 with 16384 valid entries ... -- VirtualAlloc: 7FF5CB77 1 101000 4 7ffbc5ebac57: KERNELBASE!VirtualAlloc+0x47 7ffb9b124817: vfbasics!AVrfpVirtualAlloc+0x47 00018002e11c: fbembed!Firebird::MemoryPool::external_alloc+0xCC 00018002ef76: fbembed!Firebird::MemoryPool::internal_alloc+0x286 00018002d68e: fbembed!Firebird::MemoryPool::allocate_nothrow+0x21E 00018002e8de: fbembed!Firebird::MemoryPool::getExtent+0x2E 00018002eebf: fbembed!Firebird::MemoryPool::internal_alloc+0x1CF 00018002d68e: fbembed!Firebird::MemoryPool::allocate_nothrow+0x21E 00018002d44e: fbembed!Firebird::MemoryPool::allocate+0xE 000180116d8c: fbembed!PAR_gen_field+0x2C 0001800e3a53: fbembed!copy+0x3D3 0001800e3791: fbembed!copy+0x111 0001800e3791: fbembed!copy+0x111 0001800e6808: fbembed!make_validation+0x278 0001800e7464: fbembed!pass1_modify+0x2F4 0001800e0004: fbembed!CMP_pass1+0x1084 0001800e085e: fbembed!CMP_pass1+0x18DE 0001800e085e: fbembed!CMP_pass1+0x18DE 0001800e085e: fbembed!CMP_pass1+0x18DE 0001800de76b: fbembed!CMP_make_request+0x8B 0001800dc809: fbembed!CMP_compile2+0xD9 00018006f03c: fbembed!JRD_compile+0x8C 00018022f1c5: fbembed!prepare+0x9E5 00018022b114: fbembed!DSQL_prepare+0x2C4 000180084324: fbembed!jrd8_prepare+0x2C4 000180051c2a: fbembed!isc_dsql_prepare_m+0x2EA 00018005174d: fbembed!isc_dsql_prepare+0x15D 7ffb5fa6cea4: +0x7FFB5FA6CEA4 0:053> !ip2md 0x7FFB5FA6CEA4 MethodDesc: 7ffb5fccad38 Method Name: DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr[], FirebirdSql.Data.Client.Native.Handle.TransactionHandle ByRef, FirebirdSql.Data.Client.Native.Handle.StatementHandle ByRef, Int16, Byte[], Int16, IntPtr) Class:7ffb5f001fd0 MethodTable: 7ffb5f002048 mdToken: 0600 Module: 7ffb5ef5ea38 IsJitted: yes CodeAddr: 7ffb5fa6cc00 Transparency: Safe critical As you can see, root of stack that allocates memory is this row https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/2cedb4fb49c6bb1a7d9221914cea6060d643b6ff/Provider/src/FirebirdSql.Data.FirebirdClient/Client/Native/FesStatement.cs#L268. My first suggestion was that something in chain FbConnection->FbConnectionInternal->FesDatabase->FesStatement->StatementHandle wasn't properly disposed/cleared. But as I can see by !dumpheap -stat -type StatementHandle, all handles already disposed or in finalizer queue, not mention that in dump there are only 50 StatementHandles, that is much less than potentially needed to occupate 700+ Mb. Any ideas what happens here? Why memory allocated in PAR_gen_field isn't deallocated after StatementHandle disposed? -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework 5
Too much effort? On 10 January 2017 at 19:21, Jiří Činčurawrote: >> Have you considered supporting two separate libraries? In two separate >> branches/nuget and so on? > > Not really. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Developer Access Program for Intel Xeon Phi Processors > Access to Intel Xeon Phi processor-based developer platforms. > With one year of Intel Parallel Studio XE. > Training and support from Colfax. > Order your platform today. http://sdm.link/xeonphi > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] About GUIDs in Firebird
We had encountered this one in our migration to .net provider, it caused us much pain, because divergence with other SQL providers. I'd vote for changing this and declaring it as breaking change. With supplied fixes for existing code, of course. On 10 January 2017 at 16:20, Jiří Činčurawrote: > Hi *, > > we have this ticket DNET-509 in tracker. Although I agree the change > would be nice, it's also a breaking change as huge as it can get. What's > your take on it? Or do you see clean way out? > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Developer Access Program for Intel Xeon Phi Processors > Access to Intel Xeon Phi processor-based developer platforms. > With one year of Intel Parallel Studio XE. > Training and support from Colfax. > Order your platform today. http://sdm.link/xeonphi > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework 5
Have you considered supporting two separate libraries? In two separate branches/nuget and so on? On 9 January 2017 at 16:55, Jiří Činčurawrote: > Hi *, > > anybody still using EF5 (or even EF4)? Or is everybody on EF6... > Thinking about slimming the FirebirdSql.Data.FirebirdClient and removing > the old EF support and keeping only EF6 (EntityFramework.Firebird). > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Firing event when event count is 0
If the event you mentioned means, "nothing happens, I'm just alive and send you this", then you should only fire some event that means server alive, nothing else. No one cares that event occurs just because server sent something. On 17 December 2016 at 00:22, Si Carterwrote: > No it doesn't make sense, a bit like saying "look, nothing happened" but > here you go anyways... > > On 16 Dec 2016 15:15, "Jiří Činčura" wrote: >> >> Hi *, >> >> As I'm now reworking some pieces in events (together with finalizers), >> I'm wondering whether it make sense to fire the event for events when >> the event count was 0. From outside POV it doesn't make much sense. >> >> What do you think? >> >> -- >> Mgr. Jiří Činčura >> Independent IT Specialist >> >> >> -- >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EntitiyFramework and Update
FB.NET doesn't wait on locks, it returns immediately with exception. All other known for me are waiting on locks. That's the behavior you observe. You need to override creation of transaction. You should use FbTransaction with TBP in which you specify waiting option and timeout. On 26 October 2016 at 12:27, Gerdus van Zylwrote: > I suspect the default transaction option might not be the same in firebird > and other databases. > Try setting the IsolationLevel to SERIALIZABLE on the transaction. > > On Wed, Oct 26, 2016 at 10:19 AM, Jiří Činčura wrote: >> >> There's really nothing EF related. You can try it with multiple console >> windows with multiple transactions together. It's fundamental way how >> transactions work. >> >> -- >> Mgr. Jiří Činčura >> Independent IT Specialist >> >> >> >> -- >> The Command Line: Reinvented for Modern Developers >> Did the resurgence of CLI tooling catch you by surprise? >> Reconnect with the command line and become more productive. >> Learn the new .NET and ASP.NET CLI. Get your free copy! >> http://sdm.link/telerik >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > > > > -- > > Gerdus van Zyl > www.infireal.com > > -- > The Command Line: Reinvented for Modern Developers > Did the resurgence of CLI tooling catch you by surprise? > Reconnect with the command line and become more productive. > Learn the new .NET and ASP.NET CLI. Get your free copy! > http://sdm.link/telerik > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Some guess or hint
I had catched such random issues by couple of tricks: 1. .trx files that were produced vstest.console. They always have call stack with exception. 2. Unhandled exception handler that creates dump file of process itself and then publish it as artifact. Dump can be opened in Visual Studio, it will look as attached to process. Though I prefer using of WinDbg On 27 August 2016 at 10:28, Jiří Činčurawrote: > Hi *, > > I'm almost closing on compression support. It is stable when I run the > tests on my machine. Multiple time, 32bit, 64bit. But are failing on > AppVeyor. > > To make matters worse it's always different test(s). Check > https://ci.appveyor.com/project/cincura_net/firebirdsql-data-firebirdclient/build/880 > or > https://ci.appveyor.com/project/cincura_net/firebirdsql-data-firebirdclient/build/882 > . Only common piece is that it's always test with compression on (2nd > parameter is True). > > I spent few days trying to guess what's wrong and fixing some things. > But no final luck (I'll not list mine to not skew the thinking). So > maybe some smart people here will have some idea. > > So let's open discussion. Or if you can make it fail on you machine, > that would help as well. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Finalizers
What finalizers are you mention? On 29 August 2016 at 11:23, Gerdus van Zylwrote: > I agree finalizers should not be used to mask or 'fix' incorrect provider > usage. I try to avoid finalizers as much as possible since they run at > unpredictable times causing hard to debug scenarios. > > On Sun, Aug 28, 2016 at 5:40 PM, Jiří Činčura wrote: >> >> Hi *, >> >> Talking about finalizers in my last email. As I was getting through these, >> I found few that are wrong-ish. In 99% cases failing with exception, that's >> just swallowed. Confirmed from runtime. Although in 1% these might be lucky >> I don't think it's correct usage. >> >> What the finalizers are mostly trying to do is something like close >> connection gracefully with server or free some resources on server. >> >> And I believe this is wrong. >> >> First of all, this should be responsibility of developer to have correct >> Dispose calls. Provider should not try to band aid it unless absolutely >> necessary. Which brings me to the next point. The unmanaged resources, where >> the finalizers make sense, are not something on server. We don't manage >> that. Server should handle just fine when developer doesn’t close the >> connection. Though some resources might be wasted. Unmanaged resources >> directly allocated by provider are really a few around Embedded support >> (mostly pointers and pieces of memory for marshalling). And these are >> properly handled by SafeHandle. And finally finalizers introduce reentrancy >> issues (anybody interested in details?) and it's really not correct in >> provider as it grow out of hands. >> >> So in the foreseeable future I'll go through all of them and do massive >> cleanup together with locking cleanup. >> >> It's probably going to cause some issues for some people, but their code >> was wrong before, they were just "lucky". >> >> I believe it will make the code slightly faster and also solve some rare >> bugs, often NREs from finalizer thread. >> >> Of course it will be new major version. >> >> -- >> Mgr. Jiří Činčura >> Independent IT Specialist >> >> >> >> -- >> >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> > > > > -- > > Gerdus van Zyl > www.infireal.com > > -- > > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [Firebird-devel] Stored procedures etc. in .NET
Looks good. I wonder where do code should persist? Server/Client? What performance impact for such logic? On 28 June 2016 at 15:37, Daniel Railwrote: > Hi, > > At June 27, 2016, 3:51 PM, Jiří Činčura wrote: > >> Hi *, > >> there's something I've been working on for a few evenings and weekends. >> As you might know, from Firebird 3 there's and interface to write a >> plugin that allows to execute any code as stored procedure, function or >> trigger. > >> So why not to have these in .NET, right? I have a working plugin right >> now. Currently only stored procedures are supported. No blobs at the >> moment as well. > >> You can check small example at the end of this email. > >> Now the important part. Is there enough interest in this to keep working >> it? The hardest part is mostly over. Now it's just adding support for >> more objects and polishing it, hardening it and probably adding features >> based on requests (like security). > > I can see myself and our company developing stored procedures, > functions and triggers in .Net. There were times were it will likely > be easier. And, stored procedures is a good starting point, since it > can be called from a trigger. Also, this will make it easier to reuse > business logic that is developed in .Net(without having to rewrite it > in PSQL), if it is to implement such logic in a stored procedure or > trigger. > > -- > Best regards, > Daniel Rail > Senior Software Developer > ACCRA Solutions Inc. (www.accra.ca) > ACCRA Med Software Inc. (www.filopto.com) > > > -- > Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San > Francisco, CA to explore cutting-edge tech and listen to tech luminaries > present their vision of the future. This family event has something for > everyone, including kids. Get more information and register today. > http://sdm.link/attshape > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San Francisco, CA to explore cutting-edge tech and listen to tech luminaries present their vision of the future. This family event has something for everyone, including kids. Get more information and register today. http://sdm.link/attshape ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Zlib library
There is also ILMerge option to include dependency in a package. On 21 June 2016 at 11:02, Gerdus van Zylwrote: > SharpZipLib looks to be more actively maintained and with clearer and more > permissive licensing. It's a dependency of most of my project anyway so I > would not mind it. > An alternative to an external dependency is an intree copy with unnecesary > bits(eg. bzip2,tar) removed. > > Out of curiosity why is DeflateStream/GZipStream not enough? > > On Mon, Jun 20, 2016 at 6:57 PM, Jiří Činčura wrote: >> >> Hi *, >> >> Other topic to think about. The compression is Firebird is based on zlib >> compression. That one is not in the framework. So unless somebody >> contributes solid and proven implementation, when and if the compression >> will make it to master, I'd have to introduce dependency. Maybe some sort of >> optional. >> >> I successfully tested zlib from Ionic and SharpZipLib libraries. >> >> Discuss… ;) >> >> -- >> Mgr. Jiří Činčura >> Independent IT Specialist >> >> >> -- >> What NetFlow Analyzer can do for you? Monitors network bandwidth and >> traffic >> patterns at an interface-level. Reveals which users, apps, and protocols >> are >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, >> J-Flow, sFlow and other flows. Make informed decisions using capacity >> planning >> reports. http://sdm.link/zohomanageengine >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > > > > -- > > Gerdus van Zyl > www.infireal.com > > -- > Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San > Francisco, CA to explore cutting-edge tech and listen to tech luminaries > present their vision of the future. This family event has something for > everyone, including kids. Get more information and register today. > http://sdm.link/attshape > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San Francisco, CA to explore cutting-edge tech and listen to tech luminaries present their vision of the future. This family event has something for everyone, including kids. Get more information and register today. http://sdm.link/attshape ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [FB-Tracker] Created: (DNET-680) cannot connect to an embedded db with the 5.0.0.0
I can confirm. Same issue here. Steps: run Update-Package FirebirdSql.Data.FirebirdClient in package manager console On 18 May 2016 at 15:57, livioc (JIRA)wrote: > cannot connect to an embedded db with the 5.0.0.0 > - > > Key: DNET-680 > URL: http://tracker.firebirdsql.org/browse/DNET-680 > Project: .NET Data provider > Issue Type: Bug > Components: ADO.NET Provider > Affects Versions: 5.0.0.0 > Environment: .net 4.6.1 application with the provider 5.0.0.0, i > tried different embedded 2.5.* versions on both x32/64 and windows 7/10 and i > had always the same error > Reporter: livioc > Assignee: Jiri Cincura > Priority: Critical > > > i use this connection string > connectionString="Database=databasealiasname;ServerType=1;User=sysdba;Charset=WIN1252" > providerName="FirebirdSql.Data.FirebirdClient"/> > and in the alias.conf i have the full file path > databasealiasname= C:\ProgramData\database.fdb > > when i update the provider from 4.10 to 5 i get this exception when opening > the connection > FirebirdSql.Data.FirebirdClient.FbException (0x80004005): no permission for > read-write access to database *** ---> no permission for read-write access to > database *** >at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect() in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnectionInternal.cs:line > 182 >at > FirebirdSql.Data.FirebirdClient.FbConnectionPoolManager.Pool.CreateNewConnectionIfPossibleImpl(FbConnectionString > connectionString) in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnectionPoolManager.cs:line > 202 >at > FirebirdSql.Data.FirebirdClient.FbConnectionPoolManager.Pool.GetConnection(FbConnection > owner) in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnectionPoolManager.cs:line > 106 >at > FirebirdSql.Data.FirebirdClient.FbConnectionPoolManager.Get(FbConnectionString > connectionString, FbConnection owner) in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnectionPoolManager.cs:line > 221 >at FirebirdSql.Data.FirebirdClient.FbConnection.Open() in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnection.cs:line > 534 > > > with another app i get the exception only when doing the first query > FirebirdSql.Data.FirebirdClient.FbException: no permission for read/select > access to TABLE *** ---> FirebirdSql.Data.Common.IscException: no permission > for read/select access to TABLE *** >at FirebirdSql.Data.Client.Native.FesDatabase.ParseStatusVector(IntPtr[] > statusVector) in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\Client\Native\FesDatabase.cs:line > 375 >at FirebirdSql.Data.Client.Native.FesStatement.Prepare(String commandText) > in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\Client\Native\FesStatement.cs:line > 302 >at FirebirdSql.Data.FirebirdClient.FbCommand.Prepare(Boolean returnsSet) > in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:line > 1169 >at > FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior > behavior, Boolean returnsSet) in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:line > 1192 >at FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior > behavior) in > C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:line > 527 > > -- > This message is automatically generated by JIRA. > - > If you think it was sent incorrectly contact one of the administrators: > http://tracker.firebirdsql.org/secure/Administrators.jspa > - > For more information on JIRA, see: http://www.atlassian.com/software/jira > > > > -- > Mobile security can be enabling, not merely restricting. Employees who > bring their own devices (BYOD) to work are irked by the imposition of MDM > restrictions. Mobile Device Manager Plus allows you to control only the > apps on BYO-devices by containerizing them, leaving personal data untouched! > https://ad.doubleclick.net/ddm/clk/304595813;131938128;j > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net >
[Firebird-net-provider] Two DbContexts same database
Is it possible to have two different database contexts that points to same databases file? -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to workin a multiuser environment
Keeping long-lived context instance it is something like having in-memory database. Yes you have all entities but it cost you memory. Still some apps ok with this, if user session works only with small subset of database entities. Sent from my Windows 10 phone From: Jiří Činčura Sent: Saturday, March 26, 2016 12:52 PM To: For users and developers of the Firebird .NET providers Subject: Re: [Firebird-net-provider] Entity Framework: Best practices to workin a multiuser environment > Indeed. It's EF poor design, that they try to rework in EF core. > Still there are plenty of workarounds for this. For example attaching > entities only by ids. Attaching by ID? It's still attaching... > DbContext is supposed to be used in request-response scenario (web > sites, for example), where context object is short-living object. Quite opposite. Short-living context is recommended in request-response scenarios. If you can keep the instance - like WPF, WinForms, etc. - the benefit of having the context to track what you're doing is great help. The context class itself was not designed to be used in any scenario in particular. It should work and works in all range of options .NET ecosystem offers. In fact, even just the disconnected scenario has at least like 3 options to tackle it. -- Mgr. Jiří Činčura Independent IT Specialist -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471=/4140___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
> That doesn't make any sense. If I dispose context after query then I can't update the entities without attaching them to new context. Waste of resources. Indeed. It's EF poor design, that they try to rework in EF core. Still there are plenty of workarounds for this. For example attaching entities only by ids. DbContext is supposed to be used in request-response scenario (web sites, for example), where context object is short-living object. On 26 March 2016 at 11:20, Jiří Činčurawrote: >> > d) Do I need to dispose the the context on closing the window? >> Not only on that. you should create and dispose context for every >> action you do with a database: insert, delete, update, query etc. > > That doesn't make any sense. If I dispose context after query then I > can't update the entities without attaching them to new context. Waste > of resources. > >> > 3. As long the user does not explicit reload the data I am working >> > in a connected mode >> You don't have to be always connected for any reason. > > True. But for fat client type applications this is then way easier than > disconnected scenarios. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Entity Framework: Best practices to work in a multiuser environment
EF context is implementation of unit-of-work pattern, it is not repository pattern. > d) Do I need to dispose the the context on closing the window? Not only on that. you should create and dispose context for every action you do with a database: insert, delete, update, query etc. > 3. As long the user does not explicit reload the data I am working in a > connected mode You don't have to be always connected for any reason. On 25 March 2016 at 09:18, Jiří Činčurawrote: >> a) Is the method described above considered as good practice? > > From what you've written, yes. > >> b) Basically it is a connected Context until the user refreshes the data. >> In >> this case the context is recreated. > > No problem with that. > >> c) In order to manage multiuser environment, do I need to work generally >> with disconnected entities? > > No, you don't have to. > >> d) Do I need to dispose the the context on closing the window? > > Yes, you should. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Renaming some folder
Looks good for me. Here is one more suggestion: extract DDEX sources to separate repository, and use FirebirdSql.Data.FirebirdClient rep only for client itself. On 22 March 2016 at 22:12, Jiří Činčurawrote: > Hi *, > > I'm contemplating renaming some folders - the two top level folders to > be precise > (https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/tree/rename). > So the names make a bit more sense as the codebase evolved. Yes? No? > > With the FB 3 protocol work I'm doing right now I'm kind of in a "you > can't make an omelette without breaking eggs" mode. Refactoring all over > the place. :) Like this polishing > https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/commit/e166e84c2f5409d91b723a5d03930cf2b08a1662. > :) > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785351=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Choose isolation level using System.Data.IsolationLevel?
I think it is not possible. Mapping IsolationLevel <-> DbTransactionBuffer is hardcoded in FB.NET library. I know that EF I can use IDbCommandInterceptor and DbInterception.Add(suppressor); This allows to override transactions. In your framework could be something similar. On 31 January 2016 at 09:20, Kjell Rilbe <kj...@rilbe.se> wrote: > den 2016-01-30 20:23, skrev Геннадий Забула: >> On 30 January 2016 at 12:44, Kjell Rilbe <kj...@rilbe.se> wrote: >>> Hi, >>> >>> Using a framework that's "database agnostic", I am able to choose a >>> value for transaction isolation level using the >>> System.Data.IsolationLevel enum. I can't find a way to enter a >>> FbTransationOptions struct or FbTransactionBehavior value. >>> >>> Using System.Data.IsolationLevel, it seems I get transactions with >>> behavior ReadCommitted + NoRecVersion. I would like to have RecVersion >>> instead of NoRecVersion. >>> >>> Any suggestions? >>> >>> >> I'm using custom extension function, that takes DbContext and >> depending on Database.Connection type creates manually tuned >> transaction for FB case. >> https://gist.github.com/zabulus/1e46010094e1b6678729 >> Here is snippet > > Nice, but I assume this is a function that you manually call in your own > code, instead of the regular DbConnection.BeginTransaction? > > The problem is that the framework I'm using does it all under the hood: > opens connection, starts and ends transactions and executes SQL. I add > the DbConnection component I need to my form, in my case an > FbConnection, and configure my framework's persistence handler to use > that connection. The persistence handler has a lot of settings for the > SQL connection, but for fetch and write transaction mode it uses the > standard System.Data.IsolationLevel enum type, so there's no way to > configure FireBird specific transaction options. > > What I need is some way to hook into the FbConnection's call to start a > transaction, or "globally" configure it to a specific transaction > option/mode/isolation level, either overriding the > System.Data.IsolationLevel that the framework's persitence handler > passes in, or map it in a different way than apparently is standard for > the Firebird .Net provider. I.e. map ReadCommitted to ReadCommitted + > RecVersion + NoWait rather than ReadCommitted + NoRecVersion + NoWait. > > Possible? Inherit from FbCOnnection and override BeginTransaction and > use that (derived) component in place of FbConnection? > > Kjell > > -- > --- > Kjell Rilbe <kj...@rilbe.se> > Telefon: 0733-44 24 64 (+46 733 442464) > --- > "If there's a price for bein' me, that's one I'll have to pay" > Aaron Tippin > --- > > > > -- > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] connection rejected by remote interface Error]
fbclient.dll is not .net provider library, it is fb server native client library On 19 January 2016 at 13:41, dragos.popwrote: > > IBExpert is a freeware downloaded from Internet, which is not a .NET > application so it does not use the .NET provider but the gds32.dll > library. > > > Regards, > > Dragos > > > > Jiří Činčura Fri, 15 Jan 2016 04:59:51 -0800 > > What version on fbclient.dll are you using with IBExpert? Can you telnet > to 3050? > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > > -- > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Solution With ADO.NET provider 4.10.0.0 Fails Compile
According to http://semver.org/, if Public API surface is changed with any backwards incompatible changes major version must be changed. On 18 January 2016 at 16:29, Jiří Činčurawrote: >> Reading the release notes for 4.9, there have been a change for the >> event handlers, to simply use the generic EventHandler. >> >> http://tracker.firebirdsql.org/browse/DNET-640 > > Bingo! > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Fyracle's External Engine to retire
Is it Ext* classes? On 30 December 2015 at 11:06, Jiří Činčurawrote: > Hi *, > > the so called Fyracle External Engine is going to be removed from > sources in next major/minor version. It will still be in history, as > usual, in case somebody wants to look at history. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] FB3/provider 4.9.0.0 Boolean
And so it was. I'm also don't understand why don't merge the PR. People can start using .NET with FB 3.0 using legacy authentication and new features like native boolean fields. On 16 December 2015 at 22:11, Mark Rotteveel <m...@lawinegevaar.nl> wrote: > Support for Boolean does not require protocol version 13 support, and could > be added without problems. > > Mark > > > - Reply message ----- > Van: "Геннадий Забула" <zabulu...@gmail.com> > Aan: "For users and developers of the Firebird .NET providers" > <firebird-net-provider@lists.sourceforge.net> > Onderwerp: [Firebird-net-provider] FB3/provider 4.9.0.0 Boolean > Datum: wo, dec. 16, 2015 20:38 > > It is implemented in PR: > https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/40 > But since there is no overall support for FB 3.0 (especially new > authentication) the PR is suspended. > > On 16 December 2015 at 21:21, Rick Roen <rick.playa...@gmail.com> wrote: >> I'm pretty sure this is a known problem, but I get a message "invalid data >> type" exception when I ExecuteDataReader against a FB3 table with a >> boolean >> field. I can provide the error stack if necessary. >> >> Is there an ETA date to get this working? >> >> Regards, >> Rick >> >> >> -- >> >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > > -- > > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] FB3/provider 4.9.0.0 Boolean
Hm, I've already finished the implementation. I will rebase it and prepare for merge. And I'll remove WIP mark. Looks like my bad, I was waiting for something. On 17 December 2015 at 13:02, Jiří Činčura <j...@cincura.net> wrote: > The PR is marked as WIP… > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > On Thu, Dec 17, 2015, at 09:54, Геннадий Забула wrote: >> And so it was. >> I'm also don't understand why don't merge the PR. >> People can start using .NET with FB 3.0 using legacy authentication >> and new features like native boolean fields. >> >> On 16 December 2015 at 22:11, Mark Rotteveel <m...@lawinegevaar.nl> >> wrote: >> > Support for Boolean does not require protocol version 13 support, and could >> > be added without problems. >> > >> > Mark >> > >> > >> > - Reply message - >> > Van: "Геннадий Забула" <zabulu...@gmail.com> >> > Aan: "For users and developers of the Firebird .NET providers" >> > <firebird-net-provider@lists.sourceforge.net> >> > Onderwerp: [Firebird-net-provider] FB3/provider 4.9.0.0 Boolean >> > Datum: wo, dec. 16, 2015 20:38 >> > >> > It is implemented in PR: >> > https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/40 >> > But since there is no overall support for FB 3.0 (especially new >> > authentication) the PR is suspended. >> > >> > On 16 December 2015 at 21:21, Rick Roen <rick.playa...@gmail.com> wrote: >> >> I'm pretty sure this is a known problem, but I get a message "invalid data >> >> type" exception when I ExecuteDataReader against a FB3 table with a >> >> boolean >> >> field. I can provide the error stack if necessary. >> >> >> >> Is there an ETA date to get this working? >> >> >> >> Regards, >> >> Rick >> >> >> >> >> >> -- >> >> >> >> ___ >> >> Firebird-net-provider mailing list >> >> Firebird-net-provider@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> >> >> > >> > -- >> > ___ >> > Firebird-net-provider mailing list >> > Firebird-net-provider@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> > >> > >> > -- >> > >> > ___ >> > Firebird-net-provider mailing list >> > Firebird-net-provider@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> > >> >> -- >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] FB3/provider 4.9.0.0 Boolean
It is implemented in PR: https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/40 But since there is no overall support for FB 3.0 (especially new authentication) the PR is suspended. On 16 December 2015 at 21:21, Rick Roenwrote: > I'm pretty sure this is a known problem, but I get a message "invalid data > type" exception when I ExecuteDataReader against a FB3 table with a boolean > field. I can provide the error stack if necessary. > > Is there an ETA date to get this working? > > Regards, > Rick > > -- > > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] 4.9.0 beta 1 release
I think it should be ArgumentOutOfRange On 9 December 2015 at 15:13, Jiří Činčura <j...@cincura.net> wrote: > On Wed, Dec 9, 2015, at 13:43, Jiří Činčura wrote: >> On Sun, Dec 6, 2015, at 18:29, Геннадий Забула wrote: >> > I think the earlier it will be thrown the better. Also, in exception >> > message you can include text or/and link about workaround of this FB >> > limitation. It will be a good convenience for library users. >> >> As I don't have any opinion on that I'll go with you. :) > > ArgumentException or maybe ArgumentOutOfRange exception? > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] 4.9.0 beta 1 release
The name '{name}' is longer than Firebird's {LengthLimit} characters limit for objects names. On 9 December 2015 at 15:42, Jiří Činčurawrote: > Be my guest: > https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/commit/4d8d1b8a5d72b6304e8d15af36542f72a9b5da8c#diff-02c77ebea06976e32e7ce3b42bca24c9R641 > . I'm open to rewording it, as I'm bit flat on creativity today. :D > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] 4.9.0 beta 1 release
> Do you think it should throw exception? I would rather let that for > Firebird. Somebody might tweak the script or something like that. > I know you proposed hashing the name, but that's not reasonable general > solution. The database would look gibberish for outside view. Nobody > would know what's what. I think the earlier it will be thrown the better. Also, in exception message you can include text or/and link about workaround of this FB limitation. It will be a good convenience for library users. As for hashing, agree, when we implemented this solution I missed the possibility to specify custom short names for tables. > > 4. Also, I don't see where IFbMigrationSqlGeneratorBehavior can be > > injected from client's app code. > In ctor. Ctor of what? > Agree. I'd like to first see somebody outside implement other behavior. > Then we can talk about what to extract - i.e. the system tables logic > etc. In specified links, I've provided my implementation of generator-per-table. On 5 December 2015 at 17:54, Jiří Činčurawrote: >> 1. readonly IFbMigrationSqlGeneratorBehavior _behavior; >> Is used only in migration operations DropColumn/AlterColumn, not used >> in AddColumn. > > The AddColumnOperation calls Generate method for ColumnModel and this > method handles the identity stuff. Or do you mean something else? > >> 2. We have additional implementation of Check in (0,1) for boolean >> fields like implemented in SsdlToSql.cs > > Good idea. Added. (Testing it as we speak.) > >> 3. CreateItemName function doesn't support names longer than 31 >> character. > > Do you think it should throw exception? I would rather let that for > Firebird. Somebody might tweak the script or something like that. > > I know you proposed hashing the name, but that's not reasonable general > solution. The database would look gibberish for outside view. Nobody > would know what's what. > >> 4. Also, I don't see where IFbMigrationSqlGeneratorBehavior can be >> injected from client's app code. > > In ctor. > >> 5. I think the generator creation code in >> DefaultFbMigrationSqlGeneratorBehavior will be copied to a possible >> new implementation, so it is better to split logic. See base class: > > Agree. I'd like to first see somebody outside implement other behavior. > Then we can talk about what to extract - i.e. the system tables logic > etc. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Go from Idea to Many App Stores Faster with Intel(R) XDK > Give your users amazing mobile app experiences with Intel(R) XDK. > Use one codebase in this all-in-one HTML5 development environment. > Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. > http://pubads.g.doubleclick.net/gampad/clk?id=254741911=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741911=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] 4.9.0 beta 1 release
Here is my comments about Migration: 1. readonly IFbMigrationSqlGeneratorBehavior _behavior; Is used only in migration operations DropColumn/AlterColumn, not used in AddColumn. 2. We have additional implementation of Check in (0,1) for boolean fields like implemented in SsdlToSql.cs 3. CreateItemName function doesn't support names longer than 31 character. 4. Also, I don't see where IFbMigrationSqlGeneratorBehavior can be injected from client's app code. 5. I think the generator creation code in DefaultFbMigrationSqlGeneratorBehavior will be copied to a possible new implementation, so it is better to split logic. See base class: https://github.com/zabulus/NETProvider/blob/master/NETProvider/src/EntityFramework.Firebird/DefaultFbMigrationSqlGeneratorBehavior.cs and it's default implementation. https://github.com/zabulus/NETProvider/blob/master/NETProvider/src/EntityFramework.Firebird/CustomFbMigrationSqlGeneratorBehavior.cs For all these suggestions I can prepare PRs this week without problems. On 15 November 2015 at 13:04, Jiří Činčurawrote: > Hi * > > before I'll start cracking on FB 3 support (we have some good PRs) I'd > like to get some features out. The list of changes is in > http://tracker.firebirdsql.org/browse/DNET/fixforversion/10722 (and also > some internal network stuff changes - check the commits if you're > interested). Test it. > > Probably the long awaited is EF Migrations [3] support. You can us the > new `FbMigrationSqlGenerator` [1] class. It's registered by default, but > if you want to play harder check these lines [2]. Try it, discuss it > here. Known issue [5]. > > The version is available on *NuGet only* [4]. > > [1]: > https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/master/NETProvider/src/EntityFramework.Firebird/FbMigrationSqlGenerator.cs > [2]: > https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/master/NETProvider/src/FirebirdSql.Data.FirebirdClient/FirebirdClient/FbProviderServices.cs#L69,L70 > [3]: https://msdn.microsoft.com/en-us/data/jj591621.aspx > [4]: > https://www.nuget.org/packages/FirebirdSql.Data.FirebirdClient/4.9.0-beta1 > [5]: http://entityframework.codeplex.com/workitem/2683 > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Presto, an open source distributed SQL query engine for big data, initially developed by Facebook, enables you to easily query your data on Hadoop in a more interactive manner. Teradata is also now providing full enterprise support for Presto. Download a free open source copy now. http://pubads.g.doubleclick.net/gampad/clk?id=250295911=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [FB-Tracker] Created: (DNET-638) Add exception when FbConnectionPoolManager.ClearPools used inapropriately
PR on github was updated On 7 October 2015 at 10:36, Hennadii Zabula (JIRA)wrote: > Add exception when FbConnectionPoolManager.ClearPools used inapropriately > - > > Key: DNET-638 > URL: http://tracker.firebirdsql.org/browse/DNET-638 > Project: .NET Data provider > Issue Type: Improvement > Components: ADO.NET Provider > Affects Versions: vNext > Reporter: Hennadii Zabula > Assignee: Jiri Cincura > > > We had run in a problem where currently running queries were failing because > another thread wrongly cleared all pools. It was quite unexpected. > > We fixed the issue in our code with the thread, but I think it should throw > InvalidOperationException if _busy dictionary is not empty, because it means > that there may be currently running queries. > > The exception could add information about the problems caused by an > inappropriate call to ClearPool. > > > -- > This message is automatically generated by JIRA. > - > If you think it was sent incorrectly contact one of the administrators: > http://tracker.firebirdsql.org/secure/Administrators.jspa > - > For more information on JIRA, see: http://www.atlassian.com/software/jira > > > > -- > Full-scale, agent-less Infrastructure Monitoring from a single dashboard > Integrate with 40+ ManageEngine ITSM Solutions for complete visibility > Physical-Virtual-Cloud Infrastructure monitoring from one console > Real user monitoring with APM Insights and performance trend reports > Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
[Firebird-net-provider] Question about IFbClient purpose
Jiri, could you clarify what is a purpose of separate IFbClient interface and about using native calls through instance instead of organizing P/Invokes as static NativeMethods class? -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Question about IFbClient purpose
I got it. It is support of dynamic client library name specified in connection string. Do you mind if I submit PR with comments about it? -Original Message- From: "Jiří Činčura" <j...@cincura.net> Sent: 10/14/2015 8:18 PM To: "firebird-net-provider@lists.sourceforge.net" <firebird-net-provider@lists.sourceforge.net> Subject: Re: [Firebird-net-provider] Question about IFbClient purpose On Wed, Oct 14, 2015, at 19:12, Геннадий Забула wrote: > Jiri, could you clarify what is a purpose of separate IFbClient > interface and about using native calls through instance instead of > organizing P/Invokes as static NativeMethods class? It's used because for P/Invoke calls to fbembed are emitted on the fly. And that's because you can't have DllImport attribute with non-constant string which is needed to ClientLibrary support in connection string. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Question about FbConnectionPoolManager
> Well, when you clear your pool and other threads are running queries you're the one responsible. :) Of course. But exception could provide additional information about what is going on and where do I need to look. On 6 October 2015 at 19:46, Jiří Činčura <j...@cincura.net> wrote: > On Tue, Oct 6, 2015, at 15:46, Геннадий Забула wrote: >> I have a question about method implementation. >> CleanConnectionsImpl >> It cleans connections in pool. >> But why _busy dictionary connections are disposed as well? >> Isn't it a trouble maker for inappropriate ClearPools method users? >> >> We had run in a problem where currently running queries were failing >> because another thread wrongly cleared all pools. It was quite >> unexpected. > > Well, when you clear your pool and other threads are running queries > you're the one responsible. :) > >> We fixed the issue in our code with the thread, but I think it should >> throw InvalidOperationException if _busy dictionary is not empty, >> because it means that there may be currently running queries. > > I don't have problem throwing exception, because for valid uses it > changes nothing. But might be unexpected when somebody took advantage of > that behavior. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Parser class/library
http://entityframework.codeplex.com/SourceControl/latest#src/EntityFramework/Core/Common/EntitySql/GenerateParser.cmd On 5 October 2015 at 17:22, Геннадий Забула <zabulu...@gmail.com> wrote: > EF uses yacc and lex for EntityTree parsing. > They both produce C# class that can be compiled into the assembly. > > On 5 October 2015 at 16:30, Jiří Činčura <j...@cincura.net> wrote: >> Hi, >> >> I'm working on a bug fix for DNET-266. And the more and more I tweak the >> parser I wrote this morning to properly handle all the edge cases I'm >> wondering whether it would make sense to take a dependency on some >> library or class that can do some basic parsing. We don't need full >> grammar features like ANTLR, just something that can tokenize SQL and >> handle comments (or in general tokenizer with "escaping" support). >> >> What do you think? Any recommendations? >> >> BTW the bugfix is sponsored by SMS-Timing. Kudos to them. >> >> -- >> Mgr. Jiří Činčura >> Independent IT Specialist >> >> -- >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Parser class/library
EF uses yacc and lex for EntityTree parsing. They both produce C# class that can be compiled into the assembly. On 5 October 2015 at 16:30, Jiří Činčurawrote: > Hi, > > I'm working on a bug fix for DNET-266. And the more and more I tweak the > parser I wrote this morning to properly handle all the edge cases I'm > wondering whether it would make sense to take a dependency on some > library or class that can do some basic parsing. We don't need full > grammar features like ANTLR, just something that can tokenize SQL and > handle comments (or in general tokenizer with "escaping" support). > > What do you think? Any recommendations? > > BTW the bugfix is sponsored by SMS-Timing. Kudos to them. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
> But then we're back where we started. Question is whether the global > definition for whole migration generator or per column is more > understandable and discoverable for developers. If question only about this, then my opinion that it must be fine-grained at a column level. But there should be a possibility to set an implementation for context wide. It will cover the case where you use mixed scheme: all tables have one generator, except several that have per table generators. You specify context-wide implementation per database generator, and in ModelBuilder you specify generators for these exceptional tables. On 1 October 2015 at 22:26, Daniel Rail <dan...@accra.ca> wrote: > Hi, > > At October 1, 2015, 2:21 PM, Jiří Činčura wrote: > >> On Thu, Oct 1, 2015, at 19:00, Геннадий Забула wrote: >>> In ModelBuilder you can specify any object as data annotation. In this >>> case user can provide implementation of the interface. > >> But then we're back where we started. Question is whether the global >> definition for whole migration generator or per column is more >> understandable and discoverable for developers. > > My preference would be at the column level. Since that would be more > discoverable for me, because it is close to where it is used. > > -- > Best regards, > Daniel Rail > Senior Software Developer > ACCRA Solutions Inc. (www.accra.ca) > ACCRA Med Software Inc. (www.filopto.com) > > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
> No. You talked about generator/identity columns. Possibly replacing the interface. I think I've lose the point in this. > That's definitely not. You can have one generator for all tables (and it's even better). For "Even better" I have doubts. Especially for multithreaded inserts to different tables case. > That's definitely not. I'm talking about "generator creation", it should be hidden in the provider. Though names yes, user should be allowed to pick a naming scheme he wants. In case "one generator for all tables" user specifies one generator name for all tables and provider should check if it exists - nothing to do, if not it creates new. After that it binds the generator name to before insert trigger. > Well, the default initializers are using different path. Yep, I'm aware about this. First I've patched one code path. After merge the migration feature I needed to patch another code path, and resulting database had differences. On 1 October 2015 at 14:13, Jiří Činčura <j...@cincura.net> wrote: > On Thu, Oct 1, 2015, at 11:45, Геннадий Забула wrote: >> >Do you think the annotations will be better? >> Better than what? Your concern was about different naming schemes, I >> suggested how it can be resolved via column annotations and custom >> name providers. I don't know other options for this. > > No. You talked about generator/identity columns. Possibly replacing the > interface. > >> >How is the generator creation (if it does not exists) going to be handled? >> >Or are we going to leave that to manual change of Up method in migration? >> IMO generator creation is an implementation detail that user shouldn't >> bother about. Generator creation is a part of a table creation. > > That's definitely not. You can have one generator for all tables (and > it's even better). > >> >Do you have some more info for this. >> I'm sure that there were issues about identity columns. The current >> implementation CreateDatabaseIfExists doesn't create generators in any >> case, we patched sources to do that. Also, bool fields don't have >> CHECK IN (0, 1) annotation and so on. >> I need time to provide additional info for this. > > Well, the default initializers are using different path. These existed > before migrations. The code is different (and also the feature set). It > also works with EDMX and CF, while migrations are (currently) CF only. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Inserting strings problem
Entity: public sealed class Table { public Table() { this.Entities1 = new List(); } public int Id { get; set; } public string Field1{ get; set; } public string Field2{get; set; } public string Field3 { get; set; } public string Field4 { get; set; } public string Field5 {get; set; } public Entities3 Entities3 { get; set; } public ICollection Entities1{ get; set; } public ICollection Entities2{ get; set; } } On 1 October 2015 at 13:53, Геннадий Забула <zabulu...@gmail.com> wrote: > We map the entities through EntityTypeConfiguration class: > > Src table mapping: > this.HasKey(t => t.Id); > > // Properties > // Table & Column Mappings > this.ToTable("TABLE2"); > this.Property(t => t.Id).HasColumnName("ID"); > this.Property(x => x.Field1).HasColumnName("FIELD1"); > this.Property(x => x.Field2).HasColumnName("FIELD2"); > this.Property(x => x.Field3).HasColumnName("FIELD3"); > this.Property(x => x.Field4).HasColumnName("FIELD4"); > this.Property(x => x.Field5).HasColumnName("FIELD5"); > > Dst table mapping inherits from above: > > :base() > { > Property(x => > x.Id).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None); > } > > On 1 October 2015 at 13:38, Jiří Činčura <j...@cincura.net> wrote: >> How does the entity and mapping looks like? >> >> -- >> Mgr. Jiří Činčura >> Independent IT Specialist >> >> >> -- >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Inserting strings problem
Hm, looks like it works. Added .HasMaxLength(256) to all fields and it goes success ahead. Before I tried only for one field and it doesn't work. Thx for fast response. On 1 October 2015 at 13:56, Jiří Činčura <j...@cincura.net> wrote: > You should specify, at least, the length. Else it's the default and > that's "unlimited" hence the blob. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > On Thu, Oct 1, 2015, at 12:54, Геннадий Забула wrote: >> Entity: >> public sealed class Table >> { >> public Table() >> { >> this.Entities1 = new List(); >> } >> >> public int Id { get; set; } >> public string Field1{ get; set; } >> public string Field2{get; set; } >> public string Field3 { get; set; } >> public string Field4 { get; set; } >> public string Field5 {get; set; } >> >> public Entities3 Entities3 { get; set; } >> public ICollection Entities1{ get; set; } >> public ICollection Entities2{ get; set; } >> } >> >> On 1 October 2015 at 13:53, Геннадий Забула <zabulu...@gmail.com> wrote: >> > We map the entities through EntityTypeConfiguration class: >> > >> > Src table mapping: >> > this.HasKey(t => t.Id); >> > >> > // Properties >> > // Table & Column Mappings >> > this.ToTable("TABLE2"); >> > this.Property(t => t.Id).HasColumnName("ID"); >> > this.Property(x => x.Field1).HasColumnName("FIELD1"); >> > this.Property(x => x.Field2).HasColumnName("FIELD2"); >> > this.Property(x => x.Field3).HasColumnName("FIELD3"); >> > this.Property(x => x.Field4).HasColumnName("FIELD4"); >> > this.Property(x => x.Field5).HasColumnName("FIELD5"); >> > >> > Dst table mapping inherits from above: >> > >> > :base() >> > { >> > Property(x => >> > x.Id).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None); >> > } >> > >> > On 1 October 2015 at 13:38, Jiří Činčura <j...@cincura.net> wrote: >> >> How does the entity and mapping looks like? >> >> >> >> -- >> >> Mgr. Jiří Činčura >> >> Independent IT Specialist >> >> >> >> >> >> -- >> >> ___ >> >> Firebird-net-provider mailing list >> >> Firebird-net-provider@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> >> -- >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Inserting strings problem
We map the entities through EntityTypeConfiguration class: Src table mapping: this.HasKey(t => t.Id); // Properties // Table & Column Mappings this.ToTable("TABLE2"); this.Property(t => t.Id).HasColumnName("ID"); this.Property(x => x.Field1).HasColumnName("FIELD1"); this.Property(x => x.Field2).HasColumnName("FIELD2"); this.Property(x => x.Field3).HasColumnName("FIELD3"); this.Property(x => x.Field4).HasColumnName("FIELD4"); this.Property(x => x.Field5).HasColumnName("FIELD5"); Dst table mapping inherits from above: :base() { Property(x => x.Id).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None); } On 1 October 2015 at 13:38, Jiří Činčurawrote: > How does the entity and mapping looks like? > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
> That's why the interface with some default implementation is so convenient. In ModelBuilder you can specify any object as data annotation. In this case user can provide implementation of the interface. On 1 October 2015 at 19:01, Jiří Činčura <j...@cincura.net> wrote: > On Thu, Oct 1, 2015, at 13:38, Геннадий Забула wrote: >> I'm talking about "generator creation", it should be hidden in the >> provider. Though names yes, user should be allowed to pick a naming >> scheme he wants. >> In case "one generator for all tables" user specifies one generator >> name for all tables and provider should check if it exists - nothing >> to do, if not it creates new. After that it binds the generator name >> to before insert trigger. > > Well that's just part of story. You also need to name the trigger. You > need to have the body. Some people use like `Id is null` clauses. Some > also include 0 or -1 (for integers) etc. Not sure how to code this using > annotations (without implementing all possible combinations). That's why > the interface with some default implementation is so convenient. > >> > Well, the default initializers are using different path. >> Yep, I'm aware about this. First I've patched one code path. After >> merge the migration feature I needed to patch another code path, and >> resulting database had differences. > > I'd like to eventually re-use parts of migrations code to have (almost) > same result. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
[Firebird-net-provider] Inserting strings problem
I have next table in two databases: CREATE TABLE TABLE2( ID INTEGER NOT NULL, FIELD1 VARCHAR(256), FIELD2 VARCHAR(256), FIELD3 VARCHAR(512), FIELD4 VARCHAR(100), FIELD5 VARCHAR(2048)) Using EF I'm trying to copy data from one database to another. I want to copy full data including Ids, so I disabled Identity Generation for a destination database. Problem is the next when EF generates insert it looks like the following: "INSERT INTO \"TABLE2\"(\"ID\", \"FIELD1\", \"FIELD2\", \"FIELD3\", \"FIELD4\", \"FIELD5\")\r\nVALUES (@p0, @p1, @p2, @p3, @p4, @p5, NULL)\r\n" And I have a problem here, parameters for these fields are treated like SQL_TEXT and it tries to put UTF8 byte array to VARCHAR fields, which is wrong. And a query fails on some long strings that in utf8 interpretation longer than 256 for example. When I turn Identity Generation on, query looks like following: EXECUTE BLOCK ( p1 BLOB SUB_TYPE TEXT = @p1, p7 BLOB SUB_TYPE TEXT = @p7, p8 BLOB SUB_TYPE TEXT = @p8, p9 BLOB SUB_TYPE TEXT = @p9 ) RETURNS ( "ID" INT) AS BEGIN INSERT INTO "TABLE2"("FIELD2", "FIELD3", "FIELD4", "FIELD5", "FIELD6") VALUES (:p1, :p7, :p8, :p9, NULL) RETURNING "ID" INTO :"ID"; SUSPEND; END And it doesn't fail. -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [FB-Tracker] Created: (DNET-631) Support for BOOLEAN in FB3
Jiri, could you take a look at PR. I've finished bringing support, but stuck with problems running unit-tests on both servers 2.5/3.0. Both embedded configuration works fine. I think I'll finish the problems this weekend. On 24 September 2015 at 19:14, Jiří Činčura <j...@cincura.net> wrote: > On Thu, Sep 24, 2015, at 18:10, Геннадий Забула wrote: >> I have several question about Gds protocol. Where can I find >> documentation about it? I need to know what should I write to send >> boolean field to server. >> And also I have doubts about an implementation of reading boolean fields. > > The best "documentation" is Firebird's source code. Not the most > readable form, though. But always up-to-date. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > -- > Monitor Your Dynamic Infrastructure at Any Scale With Datadog! > Get real-time metrics from all of your servers, apps and tools > in one place. > SourceForge users - Click here to start your Free Trial of Datadog now! > http://pubads.g.doubleclick.net/gampad/clk?id=241902991=/4140 > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [FB-Tracker] Created: (DNET-631) Support for BOOLEAN in FB3
Thanks, I've already got it working. At least tests migrated from Jaybird pass. As Jiri suggested I took a look at FB core, and found everything I've needed. On 25 September 2015 at 16:08, Mark Rotteveel <m...@lawinegevaar.nl> wrote: > On Thu, 24 Sep 2015 19:10:44 +0300, Геннадий Забула <zabulu...@gmail.com> > wrote: >> https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/40 >> WIP about boolean support is here. Only Gds implemented for now. >> >> I have several question about Gds protocol. Where can I find >> documentation about it? I need to know what should I write to send >> boolean field to server. > > There is the Firebird Wire protocol documentation, but it doesn't contain > all details and is mostly based on reverse engineering the protocol on a > message level, not so much the content of the messages. You'll have more > luck looking at the Firebird implementation, or other drivers like Jaybird. > > In any case, you need to encode a boolean as a single byte byte-array with > the value 0 for false or 1 for true. See also: > > https://github.com/FirebirdSQL/jaybird/blob/master/src/main/org/firebirdsql/gds/ng/DefaultDatatypeCoder.java#L358 > > For reading and writing you also need information on the blr calculations: > https://github.com/FirebirdSQL/jaybird/blob/master/src/main/org/firebirdsql/gds/ng/wire/DefaultBlrCalculator.java > > And reading: > https://github.com/FirebirdSQL/jaybird/blob/master/src/main/org/firebirdsql/gds/ng/wire/version10/V10Statement.java#L516 > > And writing: > https://github.com/FirebirdSQL/jaybird/blob/master/src/main/org/firebirdsql/gds/ng/wire/version10/V10Statement.java#L564 > > I'd also suggest to take a look at the commit for Jaybird I linked in > ticket, as that includes all the changes you need to get it working. > >> And also I have doubts about an implementation of reading boolean > fields. > > See above. > > Mark > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [FB-Tracker] Created: (DNET-631) Support for BOOLEAN in FB3
https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/40 WIP about boolean support is here. Only Gds implemented for now. I have several question about Gds protocol. Where can I find documentation about it? I need to know what should I write to send boolean field to server. And also I have doubts about an implementation of reading boolean fields. On 14 September 2015 at 18:37, Jiří Činčura <j...@cincura.net> wrote: > On Mon, Sep 14, 2015, at 17:17, Геннадий Забула wrote: >> How should this be implemented? > > My guess is by typing the code. ;) > >> I could take a look at this in the week. > > Sure, why not. The BOOLEAN in provider will not take much effort - I was > checking it last year, quickly. > > -- > Mgr. Jiří Činčura > Independent IT Specialist > > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Multithread insert
I don't think that the issue in the .NET provider. It just forwards options to fbembed.dll for transactions it just TPB. And do it right. The problem is in the engine, I've retested it with C API and the behavior is similar to observed. My case is similar to the described here: http://www.firebirdfaq.org/faq109/. With just one difference: values field updated to is not depends on each other. I just update the same field from several threads. I've crutched this with skipping the exception because consistency is not a concern for this field. But IMO, there is an issue in the engine. On 20 September 2015 at 14:03, LtColRDSChauhanwrote: >> Message: 3 >> Date: Thu, 17 Sep 2015 19:56:20 +0200 >> From: Ji?? ?in?ura >> Subject: Re: [Firebird-net-provider] Multithread insert >> To: "For users and developers of the Firebird .NET providers" >> >> Message-ID: >> <1442512580.927417.386542585.69829...@webmail.messagingengine.com> >> Content-Type: text/plain; charset="UTF-8" >> >> On Thu, Sep 17, 2015, at 17:57, ?? wrote: >> > Narrowed the problem. The cause is a multithreaded update of the same >> > record field. Transactions, as I said don't dispatch the issue. >> >> The advice is simple. Don't update same record (not only in .NET; >> anywhere, anytool). :D >> > Transactions issues in .NET Provider need to be addressed. > Multithread/parallel programming and transactions enable correct > exploitation of multicore machines. I understand Firebird 3.0 takes major > advances in this area. > > > -- > > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Multithread insert
> I don't think there is even an issue here After taking another view at what happens, I don't think either. The exception is thrown when similar updates are made for one field, from several threads, when NO_WAIT specified. Only this flag causes it to throw. No matter if you specify flags consistent or concurrency. As I understood this is expected behavior. NO_WAIT flag is set for any IsolationLevel specified for a FbTransaction. The behavior of such updates is different from MSSQL provider (it waits) and discovering this was a kind frustrating and resulted in this thread. On 20 September 2015 at 16:30, Alexander Muylaert-Geleinwrote: > I don't think there is even an issue here. inside two different > transactions, you simply cannot update the same record. Who would win in > the end and what would be the end result. I'm pretty sure if you can solve > this, the firebird team would gladly implement this. > > a > > >> Date: Sun, 20 Sep 2015 14:12:25 +0300 >> From: zabulu...@gmail.com >> To: firebird-net-provider@lists.sourceforge.net > >> Subject: Re: [Firebird-net-provider] Multithread insert >> >> I don't think that the issue in the .NET provider. It just forwards >> options to fbembed.dll for transactions it just TPB. And do it right. >> The problem is in the engine, I've retested it with C API and the >> behavior is similar to observed. My case is similar to the described >> here: http://www.firebirdfaq.org/faq109/. With just one difference: >> values field updated to is not depends on each other. I just update >> the same field from several threads. I've crutched this with skipping >> the exception because consistency is not a concern for this field. But >> IMO, there is an issue in the engine. >> >> On 20 September 2015 at 14:03, LtColRDSChauhan wrote: >> >> Message: 3 >> >> Date: Thu, 17 Sep 2015 19:56:20 +0200 >> >> From: Ji?? ?in?ura >> >> Subject: Re: [Firebird-net-provider] Multithread insert >> >> To: "For users and developers of the Firebird .NET providers" >> >> >> >> Message-ID: >> >> <1442512580.927417.386542585.69829...@webmail.messagingengine.com> >> >> Content-Type: text/plain; charset="UTF-8" >> >> >> >> On Thu, Sep 17, 2015, at 17:57, ?? wrote: >> >> > Narrowed the problem. The cause is a multithreaded update of the same >> >> > record field. Transactions, as I said don't dispatch the issue. >> >> >> >> The advice is simple. Don't update same record (not only in .NET; >> >> anywhere, anytool). :D >> >> >> > Transactions issues in .NET Provider need to be addressed. >> > Multithread/parallel programming and transactions enable correct >> > exploitation of multicore machines. I understand Firebird 3.0 takes >> > major >> > advances in this area. >> > >> > >> > >> > -- >> > >> > ___ >> > Firebird-net-provider mailing list >> > Firebird-net-provider@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider >> > >> >> >> -- >> ___ >> Firebird-net-provider mailing list >> Firebird-net-provider@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > > -- > > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider > -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Multithread insert
Narrowed the problem. The cause is a multithreaded update of the same record field. Transactions, as I said don't dispatch the issue. On 17 September 2015 at 17:38, Геннадий Забула <zabulu...@gmail.com> wrote: > lock conflict on no wait transaction > Acquire lock for relation () failed > ---> FirebirdSql.Data.Common.IscException: lock conflict on no wait > transaction > Acquire lock for relation () failed > > On 17 September 2015 at 17:38, Геннадий Забула <zabulu...@gmail.com> wrote: >> I was wrong about IsolationLevel. If use Isolationlevel.Serializable >> exception message changes to: >> >> On 17 September 2015 at 17:32, Геннадий Забула <zabulu...@gmail.com> wrote: >>> I'm trying to insert to database multiple items at once via following code: >>> >>> using (var transaction = >>> act.Database.BeginTransaction(System.Data.IsolationLevel.RepeatableRead)) >>> { >>> // inserting and updating several related entities. >>> act.SaveChanges() // Throws exception >>> } >>> >>> Exception message: >>> lock conflict on no wait transaction >>> deadlock >>> update conflicts with concurrent update >>> concurrent transaction number is 665378 >>> >>> A problematic query that throws is about updating the entity, that all >>> my queries update. >>> >>> Using any other IsolationLevel doesn't affect the behavior. -- Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Multithread insert
lock conflict on no wait transaction Acquire lock for relation () failed ---> FirebirdSql.Data.Common.IscException: lock conflict on no wait transaction Acquire lock for relation () failed On 17 September 2015 at 17:38, Геннадий Забула <zabulu...@gmail.com> wrote: > I was wrong about IsolationLevel. If use Isolationlevel.Serializable > exception message changes to: > > On 17 September 2015 at 17:32, Геннадий Забула <zabulu...@gmail.com> wrote: >> I'm trying to insert to database multiple items at once via following code: >> >> using (var transaction = >> act.Database.BeginTransaction(System.Data.IsolationLevel.RepeatableRead)) >> { >> // inserting and updating several related entities. >> act.SaveChanges() // Throws exception >> } >> >> Exception message: >> lock conflict on no wait transaction >> deadlock >> update conflicts with concurrent update >> concurrent transaction number is 665378 >> >> A problematic query that throws is about updating the entity, that all >> my queries update. >> >> Using any other IsolationLevel doesn't affect the behavior. -- Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991=/4140 ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] [FB-Tracker] Created: (DNET-631) Support for BOOLEAN in FB3
How should this be implemented? I could take a look at this in the week. On 14 September 2015 at 17:06, Jiri Cincura (JIRA)wrote: > Support for BOOLEAN in FB3 > -- > > Key: DNET-631 > URL: http://tracker.firebirdsql.org/browse/DNET-631 > Project: .NET Data provider > Issue Type: Sub-task > Components: ADO.NET Provider, DDEX Provider, Entity Framework > support > Affects Versions: 4.8.0.0 > Reporter: Jiri Cincura > Assignee: Jiri Cincura > > > > > -- > This message is automatically generated by JIRA. > - > If you think it was sent incorrectly contact one of the administrators: > http://tracker.firebirdsql.org/secure/Administrators.jspa > - > For more information on JIRA, see: http://www.atlassian.com/software/jira > > > > -- > ___ > Firebird-net-provider mailing list > Firebird-net-provider@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
2. According to this: https://msdn.microsoft.com/en-us/data/dn456841.aspx there might be problem with ContextKey field because it is PK. But there is a workaround that allows to decrease size of the field. Don't know why this field need to be so long. Do I need to fill tracker issues for described problems to track progress? -Original Message- From: Jiří Činčura j...@cincura.net Sent: 8/30/2015 9:08 AM To: For users and developers of the Firebird .NET providers firebird-net-provider@lists.sourceforge.net Subject: Re: [Firebird-net-provider] Migrations 1. I think table names need to be preserved. Developer is reponsible for checking for that constraint. The name is defined. But I meant generated names, like PK name (if not specified). It's same for column names etc. It would be pretty confusing to later open that database and see just weird characters. 2. AFAIK you still need 16k database to be able to make PK (or maybe just 8k is enough, not 4k for sure). 4. OK, that might be bug. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
Can it be merged to master and released as Beta so this won't be used by everybody? On Saturday, 29 August 2015, Jiří Činčura j...@cincura.net wrote: I do. I’m still waiting for EF 6.2 as it contains some fixes we need for proper error reporting. It’s already fixed in sources, but not yet released. It works but people would complain and given how much stupid questions I get about DDEX, I’m not going to do that. -- Mgr. Jiří Činčura Independent IT Specialist *From:* Геннадий Забула [mailto:zabulu...@gmail.com javascript:_e(%7B%7D,'cvml','zabulu...@gmail.com');] *Sent:* Saturday, August 29, 2015 5:18 PM *To:* For users and developers of the Firebird .NET providers firebird-net-provider@lists.sourceforge.net javascript:_e(%7B%7D,'cvml','firebird-net-provider@lists.sourceforge.net'); *Subject:* [Firebird-net-provider] Migrations What is the current status of migrations? Last change was 8 month. Do you plan to merge it to master? We are using branch for almost half year in our project and can give some feedback/fixes. And want to port them to upstream. -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
Ok. For now we had such issues: 1. Long names of tables causes foreign key script creation fail with error Name exceeded implementation limitation. This caused by 31 characters limitation to almost anything not only FK. We crutched this with hashing names with base64 convert. Ugly but works. 2. Second it is drop from support databases with pages less than 16384 because of another impl. limitation for max string field length. This breaks creating MigrationHistory table. We didn't fixed this, because started using separate database. But in near future our previous database would also need to have migrations. I think this can be crutched to use blob field only for Model field of this table. 3. Issue with sequence generators. Maybe you remember discussion about this on github. Looks like I've found good place to configurate particular field. It is in OnModelCreating Properties().Configure(x=x.AddAnotation()) for property. There user can specify what sequence behavior does he need or provide custom. Today I tried to add tests for all this to repo but found out that we need to add separate test infrastructure for EF tests. -Original Message- From: Jiří Činčura j...@cincura.net Sent: 8/29/2015 7:29 PM To: For users and developers of the Firebird .NET providers firebird-net-provider@lists.sourceforge.net Subject: Re: [Firebird-net-provider] Migrations Also if you have some feedback you can discuss it here ahead of time. No problem with that. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] fbstreambackup: free disk space exhausted
I'm not sure, but can you check disk space on the remote server where database is placed? On Saturday, 29 August 2015, Parzival parzival1...@gmx.at wrote: Hallo, I try to move from calling gbak as an external tool for backup and use fbstreambackup instead. Unfortunatly I get an error message free disk space exhausted, which is confusing. The disk has enough space to store the backup file. For that reason I am guessing that there is something wrong with the way I call the backup. This is the code (in vulcan.net): // declare variables LOCAL fsb AS FbStreamingBackup LOCAL fs AS System.IO.FileStream // create new backup fsb := FbStreamingBackup{ sb:ToString() } fs := System.IO.FileStream{D:\temp\test.gbk, FileMode.Create } fsb:OutputStream := fs fsb:Execute() // It fails here Can please somebody point out what I am missing here? Maybe the filestream is not correct assign to FbStreamingBackup… Thanks Niko -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
[Firebird-net-provider] Migrations
What is the current status of migrations? Last change was 8 month. Do you plan to merge it to master? We are using branch for almost half year in our project and can give some feedback/fixes. And want to port them to upstream. -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Migrations
1. I've used hashes from names to avoid dictionaries for mapping name-guid. 2. I think it was about Model field. More precise error I'll tell tomorrow when PC will be available. I don't want to constraint page size, because changing page size for existing databases is done only via backup-restore AFAIK. In case of several GB dbs it's not an option. 3. Yes. Default behavior maybe several pre defined and possibility to provide custom. 4. One more issue I remembered. Dbs created with Initial migration and via CreateDatabaseIfNotExists have different underlying scheme in part of names. I think this should be also fixed. -Original Message- From: Jiří Činčura j...@cincura.net Sent: 8/29/2015 10:08 PM To: For users and developers of the Firebird .NET providers firebird-net-provider@lists.sourceforge.net Subject: Re: [Firebird-net-provider] Migrations 1. Long names of tables causes foreign key script creation fail with error Name exceeded implementation limitation. This caused by 31 characters limitation to almost anything not only FK. We crutched this with hashing names with base64 convert. Ugly but works. Maybe we can, in case it's longer than 31 characters, simply use GUID. Not nice either, though. 2. Second it is drop from support databases with pages less than 16384 because of another impl. limitation for max string field length. This breaks creating MigrationHistory table. We didn't fixed this, because started using separate database. But in near future our previous database would also need to have migrations. I think this can be crutched to use blob field only for Model field of this table. You mean the PK on MigrationHistory? We can specify 16k page size as a requirement. There's not much to invent on the PK. 3. Issue with sequence generators. Maybe you remember discussion about this on github. Looks like I've found good place to configurate particular field. It is in OnModelCreating Properties().Configure(x=x.AddAnotation()) for property. There user can specify what sequence behavior does he need or provide custom. True. And with custom convention it's not even needed to specify it explicitly for every column. Today I tried to add tests for all this to repo but found out that we need to add separate test infrastructure for EF tests. There's few tests I wrote. Using CF as that's easy to set up. But maybe the migrations would need deeper setup. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] DNET-532
Fresh PR for this issue: https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/35 On 27 August 2015 at 07:58, Jiří Činčura j...@cincura.net wrote: One more question about string.Equals. Comparison type used in IndexOf calls is StringComparison.CurrentCultureIgnoreCase. My question why this used instead of OrdinalIgnoreCase? My current optimization, including StringComparison change decreased timings to 22 (names) vs 6 (indexes) seconds. Because of national characters. Somebody might use these in parameter name. Although it's pretty weird, I had similar issue in DDEX. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] DNET-532
About Equals call I'm not sure it can be optimized somehow. But decreasing cost of NormalizeParameterName should significantly reduce overall case execution time. On 26 August 2015 at 20:27, Геннадий Забула zabulu...@gmail.com wrote: I've profiled case and found out next hot paths: get_Item: 54,56% 1. 30.30% return this.parameters.FindIndex((PredicateFbParameter) (x = x.InternalParameterName.Equals(normalizedParameterName, StringComparison.CurrentCultureIgnoreCase))); Equals call 2. 21,51% internal static string NormalizeParameterName(string parameterName) { if (string.IsNullOrEmpty(parameterName) || parameterName.StartsWith(@)) return parameterName; return string.Format(@{0}, (object) parameterName); } This method also can be optmized. StartsWith - parameterName[0] == '@' string.Format - string.Concat(@, parameterName) On 26 August 2015 at 16:45, Jiří Činčura j...@cincura.net wrote: Can you share profiler report? There's a test app attached to the ticket. It clearly shows the hot spot. I can share only times (from my machine). -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] DNET-532
Before doing any optimizations, there should be done some profiling to find hot paths in particular cases. I think need to start with sample that demonstrates the issue. After that start running it in a loop under profiler. On 26 August 2015 at 15:39, Jiří Činčura j...@cincura.net wrote: Hi *, May I bring to your attention the http://tracker.firebirdsql.org/browse/DNET-532 ? I'd like to know others' view as well. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] DNET-532
Can you share profiler report? On 26 August 2015 at 16:05, Jiří Činčura j...@cincura.net wrote: Before doing any optimizations, there should be done some profiling to find hot paths in particular cases. I think need to start with sample that demonstrates the issue. After that start running it in a loop under profiler. Done that already. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Handling of boolean in .Net Provider 4.6.2
We are using SMALLINT type in our project. FB EF provider also generates tables with SMALLINT fields for code-first class fields. On 26 June 2015 at 14:49, Christian Waldmann christian.waldm...@rte-ag.ch wrote: I am using Firebird 2.5.4, superServer and embedded, Visula Studio 2013, .Net Framework 4.5.1, .Net Provider 4.6.2 //== = I have defined a table with CyclePassed CHAR(1) to store a boolean result CREATE TABLE SampleSummaries ( UniqueIdBIGINT DEFAULT 0 NOT NULL, EndTestRunIdBIGINT NOT NULL, Cycle BIGINT NOT NULL, LoadPressureFLOAT, LoadPressureMin FLOAT, LoadPressureMax FLOAT, ShutoffPressure FLOAT, ShutoffPressureMin FLOAT, ShutoffPressureMax FLOAT, TravelTime FLOAT, TravelTimeMin FLOAT, TravelTimeMax FLOAT, CyclePassed CHAR(1) ); //== = // access to table from C# bool cyclePassed = true; FbCommand command = new FbCommand(); command.CommandText = INSERT INTO \SampleSummaries\ ( + \EndTestRunId\, \Cycle\, + \LoadPressure\, \LoadPressureMin\, \LoadPressureMax\, + \ShutoffPressure\, \ShutoffPressureMin\, \ShutoffPressureMax\, + \TravelTime\, \TravelTimeMin\, \TravelTimeMax\, \CyclePassed\ + ) VALUES (@EndTestRunId, @Cycle, + @LoadPressure, @LoadPressureMin, @LoadPressureMax, + @ShutoffPressure, @ShutoffPressureMin, @ShutoffPressureMax, + @TravelTime, @TravelTimeMin, @TravelTimeMax, @CyclePassed ); command.Connection = samplesTableAdapter.Connection; command.Transaction = transaction; command.Parameters.Add(@EndTestRunId, FbDbType.BigInt).Value = channelId; ... // PROBLEM A: == // works with stand alone server, // but SQL error string conversion error '49' // {Remark: 49 is the decimal ASCII code of '1'} command.Parameters.Add(@CyclePassed, FbDbType.Boolean).Value = cyclePassed ? '1' : '0'; // PROBLEM B: == // works with embedded server, // but string truncation error with stand alone server command.Parameters.Add(@CyclePassed, FbDbType.Boolean).Value = cyclePassed; // REMARK: == // works with embedded server and standalone server Firebird 2.5.3, with .Net Provider 2.0, .Net Framework 2.0, Visual Studio 2008 command.Parameters.Add(@CyclePassed, FbDbType.Boolean).Value = cyclePassed; // QUESTION Is this a bug or am I missing the correct usage of storing a 'bool'? Happy coding Christian Waldmann -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical virtual servers, alerts via email sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] OutOfMemoryException
can you make a dump of your test-process in a moment of OOM exception (if there is no sensitive information of course), so we can take a look what and where had leaked. On 19 June 2015 at 08:35, Alexander Muylaert-Gelein amuylaert_gel...@hotmail.com wrote: You might already have expected this. I don't think Jiri is aware of any leaks inside the provider, otherwise they would have been resolved. Can you make a reproducible scenario? thanks a From: lo...@nucleo.co.za To: firebird-net-provider@lists.sourceforge.net Date: Thu, 18 Jun 2015 16:34:36 +0200 Subject: [Firebird-net-provider] OutOfMemoryException Hello, I have an application that runs on .NET 4.5.1 against FB 2.5.2. Up to now I have been using FirebirdClient 2.0.1. I have just migrated to using FirebirdClient 4.6.2 with the view of getting some performance gains. When I run my application's automated test suite of around 1500 tests using client 2.0.1, the test suite runs through. However, when I run the test suite against client 4.6.2, I get OutOfMemoryException at around 80% mark. The first question is whether client 4.6.2 will give me performance gains. Second question is why would I run out of memory with 4.6.2 and not 2.0.1? Thanks Louis -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Setting LockTables in FbTransactionOptions with string[] of Tables to Lock
Use Linq^ string[] tables = LockTables = tables.ToDictionary(x=x, FbTransactionBehavior.LockRead | FbTransactionBehavior.Exclusive) But this will cause all table to have same FbTransactionBehavior. On Tue, Jun 16, 2015 at 7:50 AM, Jiří Činčura j...@cincura.net wrote: You can’t use string[]. You need to specify the locking, hence the IDictionary. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] FbBatchExecution
you can also add helper method Add(FbScript scrip) to support current ctor. On Tue, Jun 16, 2015 at 7:57 AM, Jiří Činčura j...@cincura.net wrote: Thinking more about it. Maybe the ctor should be only with optional FbConnection and the rest can be done via SqlStatements property. Then it's not tied to FbScript at all. Maybe then the FbStatementCollection can have a simple helper method Add(FbStatementCollection) (or something like that). Then it would look like: var batchExecution = new FbBatchExceution(); batchExecution.Statements.Add(script.Results); //maybe rename Results Statements??? batchExecution.Execute(); Looks good to me. -- Mgr. Jiří Činčura Independent IT Specialist -Original Message- From: Jiří Činčura Sent: Wednesday, June 10, 2015 3:36 PM To: firebird-net-provider@lists.sourceforge.net Subject: FbBatchExecution Hi guys, Looking at FbBatchExecution's ctor I don't see a reason why it takes FbScript. It should rather be FbStatementCollection I think. The FbBatchExecution is doing nothing with the FbScript. It just needs commands. What do you think? I would add another overload to ctor and make the one with FbScript obsolete. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] FbBatchExecution
I don't use this. Though, propose looks good to me. On Wed, Jun 10, 2015 at 6:37 PM, Ivan Arabadzhiev intelru...@unrealsoft.net wrote: I did once suggest it should take raw String, a long time ago (did a lot of magic to embed text files to run...). Still think it has uses, but I've mostly moved away from .net now 2015-06-10 16:36 GMT+03:00 Jiří Činčura j...@cincura.net: Hi guys, Looking at FbBatchExecution's ctor I don't see a reason why it takes FbScript. It should rather be FbStatementCollection I think. The FbBatchExecution is doing nothing with the FbScript. It just needs commands. What do you think? I would add another overload to ctor and make the one with FbScript obsolete. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Random crashes in Finalizers
That's why I think my suggested changes won't impact most users of Dnet provider. On Thursday, April 9, 2015, Alexander Muylaert-Gelein amuylaert_gel...@hotmail.com wrote: Hi No, I have to admit I've abondoned EF long time ago. Too much magic behind the scenes for me. I couldn't predict the behavior of EF and that was too hard to manage. I also don't use embedded. I have a lot of pooled connections on cs and ss and normal stay open long connections on mostly ss. For mapping I prefer LLBLGEN pro, because it is dumb and thus does what I want and nothing extra. thanks a Date: Wed, 8 Apr 2015 18:16:36 +0300 From: zabulu...@gmail.com javascript:_e(%7B%7D,'cvml','zabulu...@gmail.com'); To: firebird-net-provider@lists.sourceforge.net javascript:_e(%7B%7D,'cvml','firebird-net-provider@lists.sourceforge.net'); Subject: Re: [Firebird-net-provider] Random crashes in Finalizers We use FbConnection in EF. EF does not always calls Dispose on classes provided by the FB Data provider. Alexander, what server do you use? For example, we use embedded configuration in our production. And code of the Fes* namespace doesn't work well in finalizers as we see. On Wed, Apr 8, 2015 at 6:12 PM, Alexander Muylaert-Gelein amuylaert_gel...@hotmail.com javascript:_e(%7B%7D,'cvml','amuylaert_gel...@hotmail.com'); wrote: Hi I intensively use firebird and provider... I always use the dispose method (using) and I don't depend on the GC for this. I never had any of the exceptions refererred to. Wouldn't it be better *not* to depend on something horrible as the gc for something as important as your db connectivity? Isn't it better to prevent then to cure? thanks a Date: Wed, 8 Apr 2015 18:00:26 +0300 From: zabulu...@gmail.com javascript:_e(%7B%7D,'cvml','zabulu...@gmail.com'); To: firebird-net-provider@lists.sourceforge.net javascript:_e(%7B%7D,'cvml','firebird-net-provider@lists.sourceforge.net'); Subject: [Firebird-net-provider] Random crashes in Finalizers Hello everyone. I want to discuss changes in finalizers regarding a couple of crashes we experience in our FB using. Issues in tracker: http://tracker.firebirdsql.org/browse/DNET-582 http://tracker.firebirdsql.org/browse/DNET-597 As for 582 we have discussion in PR that crutches it on GitHub: https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/19 As for 597 try...catch doesn't work, it is a more complicated problem. My suggestion is to refactor Dispose/Finalizer methods to not use managed objects which might be already disposed. Maybe anyone have another thought? JIri, what do you think? -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net javascript:_e(%7B%7D,'cvml','Firebird-net-provider@lists.sourceforge.net'); https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net javascript:_e(%7B%7D,'cvml','Firebird-net-provider@lists.sourceforge.net'); https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net javascript:_e(%7B%7D,'cvml','Firebird-net-provider@lists.sourceforge.net'); https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Random crashes in Finalizers
We use FbConnection in EF. EF does not always calls Dispose on classes provided by the FB Data provider. Alexander, what server do you use? For example, we use embedded configuration in our production. And code of the Fes* namespace doesn't work well in finalizers as we see. On Wed, Apr 8, 2015 at 6:12 PM, Alexander Muylaert-Gelein amuylaert_gel...@hotmail.com wrote: Hi I intensively use firebird and provider... I always use the dispose method (using) and I don't depend on the GC for this. I never had any of the exceptions refererred to. Wouldn't it be better *not* to depend on something horrible as the gc for something as important as your db connectivity? Isn't it better to prevent then to cure? thanks a Date: Wed, 8 Apr 2015 18:00:26 +0300 From: zabulu...@gmail.com To: firebird-net-provider@lists.sourceforge.net Subject: [Firebird-net-provider] Random crashes in Finalizers Hello everyone. I want to discuss changes in finalizers regarding a couple of crashes we experience in our FB using. Issues in tracker: http://tracker.firebirdsql.org/browse/DNET-582 http://tracker.firebirdsql.org/browse/DNET-597 As for 582 we have discussion in PR that crutches it on GitHub: https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/19 As for 597 try...catch doesn't work, it is a more complicated problem. My suggestion is to refactor Dispose/Finalizer methods to not use managed objects which might be already disposed. Maybe anyone have another thought? JIri, what do you think? -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
[Firebird-net-provider] Random crashes in Finalizers
Hello everyone. I want to discuss changes in finalizers regarding a couple of crashes we experience in our FB using. Issues in tracker: http://tracker.firebirdsql.org/browse/DNET-582 http://tracker.firebirdsql.org/browse/DNET-597 As for 582 we have discussion in PR that crutches it on GitHub: https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/19 As for 597 try...catch doesn't work, it is a more complicated problem. My suggestion is to refactor Dispose/Finalizer methods to not use managed objects which might be already disposed. Maybe anyone have another thought? JIri, what do you think? -- BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Make FbNetProvider classes unseal
have you tried real profiler tools? i.e. studio performance analyzer or its analogues? On Fri, Jan 16, 2015 at 6:24 PM, Lukáš Vykydal l.vyky...@gmail.com wrote: Well thank you for sugestions. After some thinking we'll use soultion with wrapper classes. Thank for your time Lukáš Vykydal Dne 1/16/2015 v 11:24 AM Jiří Činčura napsal(a): Well, you can do simple: StartTiming(); Execute(); LogElapsed(); Of if you want to do more fancy solution you should wrap all the FbXxx classes into wrappers. That's how other layers work (profilers, O/Rs, ...). -- New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
Your configuration for context needs to derive from FbDbConfiguration. So far there's no better solution. The migrations are run in serializable transaction and you need to insert into __MigrationHistory right after creation. Disaster. I'm using the same Context for both MSSQL and Firebird, how deriving from FbDbConfiguration can affect MSSQL code path? Can we override this somehow just in Firebird provider? Yeah. Firebird's 31 characters it's goign to be hard to beat. I can shorten the string, but that will increase collisions. Maybe we can create - similar to generators - open ended method that anybody can override if needed. I like this. 2014-12-30 10:06 GMT+02:00 Jiří Činčura j...@cincura.net: Your configuration for context needs to derive from FbDbConfiguration. So far there's no better solution. The migrations are run in serializable transaction and you need to insert into __MigrationHistory right after creation. Disaster. -- Mgr. Jiří Činčura Independent IT Specialist From: Геннадий Забула [mailto:zabulu...@gmail.com] Sent: Tuesday, December 30, 2014 8:19 AM To: For users and developers of the Firebird .NET providers Subject: Re: [Firebird-net-provider] EF Migrations Fall in next query: EXECUTE BLOCK AS BEGIN EXECUTE STATEMENT 'CREATE TABLE __MigrationHistory ( MigrationId VARCHAR(150) NOT NULL, ContextKey VARCHAR(300) NOT NULL, Model BLOB SUB_TYPE BINARY NOT NULL, ProductVersion VARCHAR(32) NOT NULL )' WITH AUTONOMOUS TRANSACTION; END Parameters: With next exception: unsuccessful metadata update STORE RDB$RELATIONS failed lock conflict on no wait transaction 2014-12-30 9:03 GMT+02:00 Геннадий Забула zabulu...@gmail.com: Here are my issues/suggestions: 1. Generator ID. One for all is bad options for me. I'll reimplement it to have one for table. 2. Couple of errors in creating Constraints or Indexes: unsuccessful metadata update Name longer than database column size Constraint names are longer than it can be in system tables: ALTER TABLE ClientGroupAlerts ADD CONSTRAINT FK_ClientGroupAlerts_ClientGroups_ClientGroup_Id. I've figured that maximum name is 31 (!!!) characters. I've implemented SHA1 (maybe I will replace it with something faster) hashing of string names. Will write about further progress. 2014-12-20 8:32 GMT+02:00 Mercea Paul paul.mer...@almexa.ro: On 2014.11.06 3:06 PM, Jiří Činčura wrote: Hi *, Anybody here willing to give EF Migrations a try? I'm getting close to first implementation. I'm trying to add support for Firebird db for existing app on SQL Express, and, first run of the application was with no errors and created the database. I'll going to try migrations steps and give feedback. Thanks Jiri Paul MERCEA ___ E-mail: paul.mer...@almexa.ro ___ -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
I've found out that there is the static class: System.Data.Entity.Infrastructure.Interception.DbInterception, which adds IDbInterceptor, 2014-12-30 11:23 GMT+02:00 Jiří Činčura j...@cincura.net: I'm using the same Context for both MSSQL and Firebird, how deriving from FbDbConfiguration can affect MSSQL code path? Can we override this somehow just in Firebird provider? You can use the same context. It's just configuration. I'm waiting for reply from EF guys to see what other options are. -- Mgr. Jiří Činčura Independent IT Specialist -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
One more thing about naming indexes conventions. Indexes namespace is global. So if you have several same fields in different tables, you'll have the same name index for both. Good example in three entities with N:M relations: Entity1: eid, name Entity2: eid, name Entity3: eid, name Entity1Entity3: Entity1_eid, Entity3_eid Entity1Entity2: Entity1_eid, Entity2_eid Will try to create index IX_Entity1_eid for both tables and fail on this. I've added the table name to the index name: IX_Entity1Entity3_Entity1_eid, and as I mentioned before I've experienced long name error. 2014-12-30 11:35 GMT+02:00 Геннадий Забула zabulu...@gmail.com: And looks like it works: public FbProviderServices() { #if (EF_6) AddDependencyResolver(new SingletonDependencyResolverIDbConnectionFactory(new FbConnectionFactory())); AddDependencyResolver(new SingletonDependencyResolverFuncMigrationSqlGenerator(() = new FbMigrationSqlGenerator(), ProviderInvariantName)); System.Data.Entity.Infrastructure.Interception.DbInterception.Add(new MigrationsTransactionsInterceptor()); #endif } 2014-12-30 11:29 GMT+02:00 Геннадий Забула zabulu...@gmail.com: I've found out that there is the static class: System.Data.Entity.Infrastructure.Interception.DbInterception, which adds IDbInterceptor, 2014-12-30 11:23 GMT+02:00 Jiří Činčura j...@cincura.net: I'm using the same Context for both MSSQL and Firebird, how deriving from FbDbConfiguration can affect MSSQL code path? Can we override this somehow just in Firebird provider? You can use the same context. It's just configuration. I'm waiting for reply from EF guys to see what other options are. -- Mgr. Jiří Činčura Independent IT Specialist -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
That’s not the same as what AddInterceptor call does. As far as I see in the debugger, MigrationsTransactionsInterceptor is called successfully and failed tests are going further. I've added just one fix to filter just Firebird connections: public void BeginningTransaction(DbConnection connection, BeginTransactionInterceptionContext interceptionContext) { if (connection is FbConnection interceptionContext.IsolationLevel == IsolationLevel.Serializable IsInMigrations()) { interceptionContext.Result = connection.BeginTransaction(IsolationLevel.ReadCommitted); } } The name for index is created by EF if the explicit value is not provided. Name conventions of EF is slightly different from Firebird. We need to override this in the provider. 2014-12-30 11:57 GMT+02:00 Jiří Činčura j...@cincura.net: The name for index is created by EF if the explicit value is not provided. -- Mgr. Jiří Činčura Independent IT Specialist -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
According to this: http://entityframework.codeplex.com/wikipage?title=Interception As I understand DbConfiguration.AddInterceptor is for context instance interceptions. And DbInterceptors.AddInterceptor is for global-wide interceptions. I suggest moving registration MigrationsTransactionsInterceptor to the DbInterceptors (or maybe via AddDependencyResolver(new SingletonDependencyResolverIDbInterceptor()) as suggested in documentation: http://msdn.microsoft.com/ru-ru/library/system.data.entity.dbconfiguration.addinterceptor(v=vs.113).aspx), because it is provider-specific crutch. On Tue, Dec 30, 2014 at 12:15 PM, Jiří Činčura j...@cincura.net wrote: Yeah, but it’s different path. The InternalConfiguration class might or might not like that (now or in the future). It’s problem waiting to happen. And please stop sending HTML emails. -- Mgr. Jiří Činčura Independent IT Specialist -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
One more question, how can I register custom implementation of IFbMigrationSqlGeneratorBehavior? On Tue, Dec 30, 2014 at 12:55 PM, Геннадий Забула zabulu...@gmail.com wrote: According to this: http://entityframework.codeplex.com/wikipage?title=Interception As I understand DbConfiguration.AddInterceptor is for context instance interceptions. And DbInterceptors.AddInterceptor is for global-wide interceptions. I suggest moving registration MigrationsTransactionsInterceptor to the DbInterceptors (or maybe via AddDependencyResolver(new SingletonDependencyResolverIDbInterceptor()) as suggested in documentation: http://msdn.microsoft.com/ru-ru/library/system.data.entity.dbconfiguration.addinterceptor(v=vs.113).aspx), because it is provider-specific crutch. On Tue, Dec 30, 2014 at 12:15 PM, Jiří Činčura j...@cincura.net wrote: Yeah, but it’s different path. The InternalConfiguration class might or might not like that (now or in the future). It’s problem waiting to happen. And please stop sending HTML emails. -- Mgr. Jiří Činčura Independent IT Specialist -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
Here are my issues/suggestions: 1. Generator ID. One for all is bad options for me. I'll reimplement it to have one for table. 2. Couple of errors in creating Constraints or Indexes: unsuccessful metadata update Name longer than database column size Constraint names are longer than it can be in system tables: ALTER TABLE ClientGroupAlerts ADD CONSTRAINT FK_ClientGroupAlerts_ClientGroups_ClientGroup_Id. I've figured that maximum name is 31 (!!!) characters. I've implemented SHA1 (maybe I will replace it with something faster) hashing of string names. Will write about further progress. 2014-12-20 8:32 GMT+02:00 Mercea Paul paul.mer...@almexa.ro: On 2014.11.06 3:06 PM, Jiří Činčura wrote: Hi *, Anybody here willing to give EF Migrations a try? I'm getting close to first implementation. I'm trying to add support for Firebird db for existing app on SQL Express, and, first run of the application was with no errors and created the database. I'll going to try migrations steps and give feedback. Thanks Jiri Paul MERCEA ___ E-mail: paul.mer...@almexa.ro ___ -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] Insert into uncommitted table
What the problem with inserting in different transactions? Have you tried Read uncommited/Consistent read? 2014-12-22 14:08 GMT+02:00 Jiří Činčura j...@cincura.net: Hi *, Anybody knows a trick how to insert into freshly created table without commiting that DDL first. It's kind of fucking up first migration. :) Basically: Start TX. Create table. Insert into table. Commit TX. -- Mgr. Jiří Činčura Independent IT Specialist -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
Don't have enough time to merge and test it. I look forward to test it and write some feedback on next week. 2014-11-13 18:31 GMT+02:00 Jiří Činčura j...@cincura.net: Except for identity generation should be done: http://ge.tt/3OSvoR42 . Some feedback? -- Mgr. Jiří Činčura Independent IT Specialist -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
I've asked about mutual exclusive of schemes. If schemes can be applied in one model you can use custom attributes on primary keys. If schemes are mutual exclusive, you can use custom extension method for model builder. 2014-11-09 13:12 GMT+02:00 Jiří Činčura j...@cincura.net: The update script should not be changed by users generated by migration. Or maybe I don't know something? Not exactly. There's assumption that the script will not be mostly changed. But some DBA in some classic environments might change it. We need to inject some implementation through dependency injection, or make it configurable. EF have some built-in dependency injector. Does community schemes mentioned above are mutual exclusive for database instance? Exactly. I'm currently planning to investigate whether EF allows adding 3rd party services/interfaces to be resolved. And how clean that looks like. Maybe after nailing the SQL generation. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
Can you provide it on github, so I can patch my copy of FB library to use in our project? 1. What problem in Execute block? 2. My opinion for Identity is to copy MSSQL behavior. Create generator for each primary key + trigger before insert. 2014-11-08 14:38 GMT+02:00 Jiří Činčura j...@cincura.net: Great. Here's http://ge.tt/2Cx9f142?c early implementation. There are two issues which I'm not sure how to do (see below). Rest should work. But there might be some missing space etc. in generated SQL or I might wrote it in different engine's dialect. That's what I'm mostly looking for for this testing. For easiest testing is enough to install EntityFramework.Firebird package and then replace EntityFramework.Firebird.dll reference with the one from above link. The class is FbMigrationSqlGenerator, if you'd like to try it manually. Issues: 1. Not easy to drop NOT NULL constraint in alter table. I can do it with execute block and generate it there, but seems pretty ugly. I wish Firebird 3 was here. 2. Generating identity columns. It's not directly supported in Firebird. I can at least generate #PK_GEN# comment. But I'd like to offer some warning at least that you need to create your own trigger and use/create generator. Maybe some developer-provided factory to create/alter the trigger and create/use generator would work. I'm open for ideas. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
Re: [Firebird-net-provider] EF Migrations
Sure, waiting for this. 2014-11-06 15:06 GMT+02:00 Jiří Činčura j...@cincura.net: Hi *, Anybody here willing to give EF Migrations a try? I'm getting close to first implementation. -- Mgr. Jiří Činčura Independent IT Specialist -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider -- ___ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider