This is a migrated thread and some comments may be shown as answers.

Runtime Capabilities

9 Answers 138 Views
Development (API, general questions)
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Linus
Top achievements
Rank 1
Linus asked on 19 Mar 2009, 03:18 PM
Hi,
We currently have a web application that is using Linq 2 SQL for data access.  We are currently evaluating whether it is time to jump to a better tool like OpenAccess.  Reading your API documentation, there are clearly many things already that we would like to take advantage of.  We've got a couple of things holding us back, which I did not find answers for in your documentation:

1.  Is it possible to retrieve a new Database object and provide it a dynamic connection string at runtime, as opposed to a named connectionstring in the config file?
2.  Is it possible to specify the fields in a FetchGroup at runtime?  Right now, you have to mark up your classes with attributes, but our application allows users to pick columns to display in a resultset, so we don't want to hardcode this.
3.  Does OpenAccess allow you to do joins and selects from SQL Server's table valued functions?  Can we access these in LINQ or OQL queries as opposed to SQL queries?  We make extensive use of these.
4.  Is it possible to use a third party cache like memcached for your 2nd level cache implementation?

Any help would be appreciated.  Thanks.

9 Answers, 1 is accepted

Sort by
0
Dimitar Kapitanov
Telerik team
answered on 23 Mar 2009, 04:35 PM
Hello Linus,
Sorry for the delayed reply.  Some answers in short:
1. Yes you can pass XML dynamically which overrides the config file behavior.
2. You don't have currently a way to implement fetch groups dynamically.  There is a default group for every persistent object which will load all the properties however.
3. You can do so by executing a scope.GetSQLQuery() and you should get persistent classes as a result.
4. We do not support third party cache layers at the moment.

All the best,
Dimitar Kapitanov
the Telerik team

Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
Patrice Boissonneault
Top achievements
Rank 1
answered on 16 Feb 2010, 08:23 PM
Hello,

Since the last reply to this post, about a year ago, I wanted to know if support for third-party caching layers (like memcached for example) is now planned or will be considered in the future?

Or at least, are there any plan to have a true distributed L2 cache implementation in OpenAccess in the future?

Thank you very much for your support.

P
0
Jan Blessenohl
Telerik team
answered on 17 Feb 2010, 06:09 PM
Hi Patrice Boissonneault,
There are no plans for supporting 3rd party caches at the moment.

What is a really distributed cache for you? Having all caches on all server filled with the same content is only one variation of caches. The chaches are synchronized what means for me that they are distributed. It is a lot faster to load the data from the db server instead of sending them around via a seperate channel.

Greetings,
Jan Blessenohl
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
0
Patrice Boissonneault
Top achievements
Rank 1
answered on 17 Feb 2010, 06:17 PM
Hello Jan,

Thank you for the reply.

By a true distributed cache, I was talking about having the cached content available to all web nodes.  As I understand the way the L2 cache is working in OA right now, the L2 cache are always up to date, but do not necessarely match in their content, is that correct?  For example, imagine that Server 1 loads object A and Server 2 loads object B, if Server 1 wants to load B, another round trip to the DB will be done since object B won't be sent to Server 1 cache and Server 1 has no way to access Server 2 cache.  That is what I meant by really distributed, i.e. fully synced in their content (or shared content).

This is useful for example when object A takes very long time to load and we would like all our web nodes to get it into their L2 Cache once it is loaded by one of the server.

Is this scenario currently possible or planned?

Thanks again for your support.
0
Jan Blessenohl
Telerik team
answered on 17 Feb 2010, 06:43 PM
Hi Patrice Boissonneault,
We do not have such functionality, each servers fills his cache by himself. But there is a setting where you specify per persistent type that you want to load the complete db content by accessing the first entry.

My idea, so far, was that copying the cache content around in the network is less performant than loading it from the server for all caches.

Best wishes,
Jan Blessenohl
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
0
Patrice Boissonneault
Top achievements
Rank 2
answered on 14 Jul 2011, 11:14 PM
PLEASE!  Provide another mechanisme to distribute L2 caches.  MSMQ is the most painful and unreliable piece of software I've worked with!
0
Jan Blessenohl
Telerik team
answered on 15 Jul 2011, 08:18 AM
Hi Patrice Boissonneault,
You are true from some perspective but it is not true that MSMQ is not reliable. If it is configured right, it is 100% reliable. I have experience with other framework, esp. with C++ and Java drivers for those and I have to say that they were also a configuration hell.

The mistake that I often see is that the muticast protocol is not installed and because OpenAccess uses multicast messages it is not working. We will try to add some checks to find out if MSMQ is configured right.

Best wishes,
Jan Blessenohl
the Telerik team

Register for the Q2 2011 What's New Webinar Week. Mark your calendar for the week starting July 18th and book your seat for a walk through of all the exciting stuff we will ship with the new release!

0
Patrice Boissonneault
Top achievements
Rank 2
answered on 15 Jul 2011, 04:28 PM
Hi Jan,

When I say unreliable, I mean "not guaranteed".  Multicast does not garantee that every node will get the packet, which (in case of MSMQ misconfiguration for example) will make the L2 cache unsynced with the other servers.

I finally found out that when using MSMQ Multicast with multiple NIC card installed on the servers, you have to modify registries to force the multicast protocol to bind to the NIC wanted, otherwise, the messages may be sent randomly on any interface.

Seems to be working fine now, but I must say MSMQ configuration is all but fun.

It would be really nice if OpenAccess could *expose* its L2 Cache interface so that we can connect our own custom caching layer. 

Thanks.
0
Jan Blessenohl
Telerik team
answered on 18 Jul 2011, 04:08 PM
Hi Patrice Boissonneault,
It is already on the list to add Azure support. But at the moment it is completely bound to Azure. I will add it to our list but cannot guarantee when we will do it.

Greetings,
Jan Blessenohl
the Telerik team

Register for the Q2 2011 What's New Webinar Week. Mark your calendar for the week starting July 18th and book your seat for a walk through of all the exciting stuff we will ship with the new release!

Tags
Development (API, general questions)
Asked by
Linus
Top achievements
Rank 1
Answers by
Dimitar Kapitanov
Telerik team
Patrice Boissonneault
Top achievements
Rank 1
Jan Blessenohl
Telerik team
Patrice Boissonneault
Top achievements
Rank 2
Share this question
or