Thursday, November 04, 2010

Toplink Cache and Weblogic Cluster

JPA cache

JPA (Java Persistence) implementations use a level 2 cache, which is a cache behind the session cache (aka unit of work cache). This cache is typically used when using EntityManager’s find operation or querying for entities using the primary key. This cache is also used to initialize collection members after loading up an entities collection.

JPA cache in an application server cluster such as that of Weblogic

When the JPA application is deployed on a single node of an application server, and there is no out of band access to the database, cache is really a boon. However, as soon as there are external writes to the database, the cache invalidation problem becomes a problem. The external write could be either some other application writing to the database or the application itself deployed in an application cluster scenario.

For example, consider an application which manages car distributorship. The application queries for the cars in the inventory and on sale, updates the inventory as sold. When such a query is made, it is possible that the Car entity may be loaded into the L2 cache of the JPA implementation. Now when the purchase operation updates one node in the cluster and if it is not refreshed or invalidated in the other node, then the application is potentially dealing with stale data in the cache.

To handle such situation obviously some cache synchronization techniques need to be employed. In this entry, I will be documenting three strategies that can be used with Oracle Toplink working in a Weblogic cluster environment

1. Disable the cache

2. Use Toplink Cache Coordination

3. Use Toplink Grid (Oracle Coherence integration)

Disabling the Toplink L2 cache

L2 cache can be disabled per entity or as a whole. To disable the cache for all entities, add the following property to the persistence.xml

<property name="eclipselink.cache.shared.default" value="false"/>

To disable cache per entity, you will need to use the following entry in the eclipselink-orm.xml

<cache shared="false" />

For example

<?xml version="1.0" encoding="UTF-8"?>

<entity-mappings version="2.1"

xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<entity class="mypackage.MyEntity">

<cache shared="false" />

</entity>

</entity-mappings>

However, please note the bug in the current implementation - https://bugs.eclipse.org/bugs/show_bug.cgi?format=multiple&id=304868. The work around suggested in this bug needs to be done.

Use Toplink Cache Coordination

Cache coordination is a mechanism of Eclipslink (Toplink) which allows the JPA caches on the individual nodes to communicate and synchronize the changes. The communication itself could be done through the following transports –

1. JMS

2. RMI

3. CORBA

JMS also allows for asynchronous coordination.

The following strategies can be employed to synchronize the changes in the cache –

1. SEND_OBJECT_CHANGES – This is the default and sends update events only for changes in the attributes of an entity. New object creations (for example adding a new member to a collection) is not propagated

2. INVALIDATE_CHANGED_OBJECTS – This option invalidates the entity on the peer cache whenever it changes.

3. SEND_NEW_OBJECTS_WITH_CHANGES – This option adds to the first option to also send newly created entities. This option takes care of refreshing additions of a member to a collection.

4. NONE – No updates sent

To set up cache coordination, two configurations need to be done –

1. Set up the coordination transport

2. Set up the coordination type for the entities

To set up the cache coordination transport, edit the persistence.xml and add the following properties –

<property name="eclipselink.cache.coordination.protocol" value="rmi"/>

<property name="eclipselink.cache.coordination.rmi.multicast-group" value="231.1.1.1"/>

<property name="eclipselink.cache.coordination.rmi.multicast-group.port" value="9872"/>

<property name="eclipselink.cache.coordination.jndi.user" value="weblogic"/>

<property name="eclipselink.cache.coordination.jndi.password" value="Welcome1"/>

<property name="eclipselink.cache.coordination.propagate-asynchronously" value="false"/>

<property name="eclipselink.cache.coordination.naming-service" value="jndi"/>

<property name="eclipselink.cache.coordination.rmi.url" value="t3://localhost:7004"/>

<property name="eclipselink.cache.coordination.packet-time-to-live" value="4"/>

This sets up the configuration for RMI. Please note that the RMI URL can point to any of the Weblogic managed servers since the JNDI tree is replicated in a cluster. Alternatively, the “port” can also be left out.

To set up the cache coordination type, edit the eclipselink-orm.xml and add the following –

<cache coordination-type="INVALIDATE_CHANGED_OBJECTS" />

For example –

<?xml version="1.0" encoding="UTF-8"?>

<entity-mappings version="2.1"

xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<entity class="mypackage.MyEntity">

<cache coordination-type="INVALIDATE_CHANGED_OBJECTS" />

</entity>

</entity-mappings>

However, please note the bug in the current implementation –

https://bugs.eclipse.org/bugs/show_bug.cgi?id=312909. The work around suggested in this bug needs to be done.

Use Toplink Grid

Toplink Grid is the integration of Toplink with Oracle Coherence. Toplink Grid is part of Active Cache which also includes Coherence Web.

Toplink Grid provides three strategies to integrate a JPA (Toplink) application with Coherence –

1. Grid Cache

2. Grid Read

3. Grid Write

Grid Cache is the simplest and the least intrusive for a vanilla JPA application. This basically ties the L2 cache of Toplink with Coherence so that every read from JPA cache results in a get from Coherence and similarly, every write to JPA cache results in a put to Coherence.

Grid Read and Grid Write require code changes and allow Toplink to read through or write through Coherence. However with this feature, the full benefit of Data Grid can be realized.

In this entry, the configurations for Grid Cache is described. The following steps need to be performed for configuring –

1. Create Coherence Cache configuration and refer to this from the JPA application

2. Configure Coherence Cluster and refer to this from the JPA application

3. Set up related shared libraries in Weblogic and refer to these libraries from the JPA application

4. Configure JPA entities to use Grid Cache

Coherence Cache configuration

Create coherence-cache-config.xml file in some known location say D:\ and add the Cache configuration to this file.

<?xml version="1.0"?>

<!DOCTYPE cache-config SYSTEM "cache-config.dtd">

<cache-config>

<caching-scheme-mapping>

<cache-mapping>

<cache-name>*</cache-name>

<scheme-name>eclipselink-distributed</scheme-name>

</cache-mapping>

</caching-scheme-mapping>

<caching-schemes>

<distributed-scheme>

<scheme-name>eclipselink-distributed</scheme-name>

<service-name>EclipseLinkJPA</service-name>

<serializer>

<class-name>oracle.eclipselink.coherence.integrated.cache.WrapperSerializer</class-name>

</serializer>

<backing-map-scheme>

<local-scheme>

<high-units> 10000 </high-units>

<eviction-policy> LFU </eviction-policy>

</local-scheme>

</backing-map-scheme>

<autostart>true</autostart>

</distributed-scheme>

</caching-schemes>

</cache-config>

After this create a JAR file for the above file and add the JAR file as a shared library (target to all relevant servers) in Weblogic console and refer to this shared library from MyApp.ear\META-INF\weblogic-application.xml as follows –

<library-ref>

<library-name>coherence-cache-config</library-name>

</library-ref>

Coherence cluster configuration

In Weblogic console, find “Coherence Clusters” under Services. Create a new Coherence Cluster. Specify the following –

Name: CoherenceCluster

Unicast Listen Address: localhost

Unicast Listen Port: Unique port number

Unicast Port Auto Adjust: true

Multicast Listen Address: 231.1.1.1

Multicast Listen Port: Unique port number

Refer to the above Coherence Cluster in MyApp.ear\META-INF\weblogic-application.xml as follows –

<coherence-cluster-ref>

<coherence-cluster-name>CoherenceCluster</coherence-cluster-name>

</coherence-cluster-ref>

Related Library configurations

Create shared libraries (target to all relevant servers) for the following in Weblogic console –

1. D:\Oracle\Middleware11.1.1.3\wlserver_10.3\common\deployable-libraries\active-cache-1.0.jar

2. D:\Oracle\Middleware11.1.1.3\wlserver_10.3\common\deployable-libraries\toplink-grid-1.0.jar

3. D:\Oracle\Middleware11.1.1.3\coherence_3.5\lib\coherence.jar

Refer to the above shared libraries from MyApp.ear\META-INF\weblogic-application.xml. Add the following elements

<library-ref>

<library-name>active-cache</library-name>

</library-ref>

<library-ref>

<library-name>toplink-grid</library-name>

</library-ref>

<library-ref>

<library-name>coherence</library-name>

</library-ref>

Note that reference to the cache configuration should be above reference to coherence.

Configure JPA entities to use Grid Cache

To set up the Grid Cache, edit the eclipselink-orm.xml

For example –

<?xml version="1.0" encoding="UTF-8"?>

<entity-mappings version="2.1"

xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<entity class="mypackage.MyEntity">

<customizer class="oracle.eclipselink.coherence.integrated.config.GridCacheCustomizer"/>

</entity>

</entity-mappings>

Running Coherence

To start Coherence Server, run the following

D:\>java -server -Xms512m -Xmx512m -javaagent:D:\Oracle\Middleware11.1.1.3\modules\org.eclipse.persistence_1.0.0.0_2-0.jar -cp D:\Oracle\Middleware11.1.1.3\cohe

rence_3.5\lib\coherence.jar;D:\Oracle\Middleware11.1.1.3\modules\javax.persistence_1.0.0.0_1-0-2.jar;D:\Oracle\Middleware11.1.1.3\modules\com.oracle.toplink_1.0

.0.0_11-1-1-3-0.jar;D:\Oracle\Middleware11.1.1.3\modules\com.oracle.toplinkgrid_1.0.0.0_11-1-1-3-0.jar;MyApp.jar -Dtangosol.coherence.cacheconfig=d:\coherence-cache-config.xml

-Dtangosol.coherence.management.remote=true -Dtangosol.coherence.distributed.localstorage=true -Dtangosol.coherence.clusterport=7777 -Dtango

sol.coherence.clusteraddress=231.1.1.1 com.tangosol.net.DefaultCacheServer


Labels: , , , ,

71 Comments:

Anonymous Anonymous said...

Hey there, You have done a fantastic job. I will definitely digg it and personally suggest
to my friends. I'm sure they'll be benefited from this site.
Have a look at my site :: top web hosting

1:07 PM  
Anonymous Anonymous said...

Simply desire to say your article is as astonishing.
The clearness to your publish is just great and that i could assume you are
an expert in this subject. Well with your permission let me
to take hold of your RSS feed to stay updated with approaching post.

Thanks 1,000,000 and please continue the gratifying
work.
Also visit my web page - Successful Stay at Home jobs

10:50 AM  
Anonymous Anonymous said...

Hi there everyone, it's my first visit at this web page, and paragraph is genuinely fruitful in support of me, keep up posting these types of posts.
Also visit my web-site ... krankenversicherung für beamtenanwärter

2:08 PM  
Anonymous Anonymous said...

I every time emailed this webpage post page to all my friends, because
if like to read it then my friends will too.
Visit my webpage :: search engine optimization basics

3:50 AM  
Anonymous Anonymous said...

Hi colleagues, its fantastic paragraph regarding cultureand completely explained,
keep it up all the time.
My page :: low cost startup business ideas

7:44 AM  
Anonymous Anonymous said...

I'm gone to inform my little brother, that he should also pay a visit this website on regular basis to take updated from hottest gossip.

My web blog: working from home jobs

5:49 AM  
Anonymous Anonymous said...

This info is worth everyone's attention. Where can I find out more?

Feel free to visit my web site - pkv familienversicherung

9:10 PM  
Anonymous Anonymous said...

It's perfect time to make some plans for the future and it's time
to be happy. I've read this post and if I could I want to suggest you few interesting things or advice. Perhaps you can write next articles referring to this article. I want to read even more things about it!

My web-site: beitragsrechner krankenversicherung

10:24 PM  
Anonymous Anonymous said...

I was very pleased to uncover this site. I need to to thank you for your time just for this fantastic read!

! I definitely loved every bit of it and i also have you bookmarked
to look at new stuff in your web site.

My blog: kredit aufnehmen

10:29 PM  
Anonymous Anonymous said...

I almost never write comments, however i did a few
searching and wound up here "Toplink Cache and Weblogic Cluster".

And I actually do have a few questions for you if it's allright. Is it only me or does it give the impression like a few of the remarks come across like written by brain dead visitors? :-P And, if you are writing on other sites, I would like to follow everything new you have to post. Could you make a list of every one of all your communal sites like your linkedin profile, Facebook page or twitter feed?

My weblog: reseller hosting program

11:24 PM  
Anonymous Anonymous said...

Thаnk you foг the аuspіcious
wгiteup. Ӏt if truth be told was a
leisure аccount it. Glanсe complicated to far introduced agreeable from you!
However, how cаn we be in contact?

Сheck out my ωeb раge :: data entry home jobs

7:26 PM  
Anonymous Anonymous said...

Ιt's going to be end of mine day, however before finish I am reading this fantastic article to increase my knowledge.

My homepage money Home online

2:59 AM  
Anonymous Anonymous said...

I'm really enjoying the theme/design of your blog. Do you ever run into any web browser compatibility issues? A few of my blog visitors have complained about my blog not working correctly in Explorer but looks great in Opera. Do you have any suggestions to help fix this problem?

Also visit my blog; slimweightpatchreviews.info
My website > www.slimweightpatchreviews.info

4:37 AM  
Anonymous Anonymous said...

Quality content is the key to interest the viewers to go to
see the site, that's what this website is providing.

Review my blog :: private zusatzversicherung krankenkasse

9:52 PM  
Anonymous Anonymous said...

It's actually a nice and useful piece of information. I am happy that you simply shared this useful information with us. Please stay us up to date like this. Thanks for sharing.

Look at my site - innovative business ideas
My page - internet business opportunity

8:30 AM  
Anonymous Anonymous said...

I bеlіeve thіs is аmong
the suсh a lot vital іnfo for me. Αnd i am ѕatiѕfіeԁ studying youг аrticlе.
But wаnna rеmark on some normal isѕueѕ,
The site tаste iѕ great, the artіcleѕ is in poіnt of fаct
grеat : D. Eхсellent аctivіtу, chееrs

My page: outdoor patio
my site > landscape design

10:39 PM  
Anonymous Anonymous said...

Great blog! Is your theme custom made or did you download it from somewhere?
A design like yours with a few simple adjustements would really make my blog jump out.
Please let me know where you got your theme.
Bless you

Feel free to surf to my web-site :: google seo ranking

1:11 AM  
Anonymous Anonymous said...

I am not positive where you're getting your information, but great topic. I must spend some time studying much more or figuring out more. Thanks for excellent information I used to be on the lookout for this info for my mission.

Take a look at my site best restaurant chain

1:16 AM  
Anonymous Anonymous said...

Very descriptive blog, I liked that a lot.

Will there be a part 2?

my site low cost franchise opportunities

4:58 AM  
Anonymous Anonymous said...

Its nоt my first tіme to pаy a visіt this ωeb site, i am visіting this wеb
sіtе ԁaіllу and take good facts fгοm here evеryday.


Alsο visіt my website ... held vacuum cleaners

2:09 PM  
Anonymous Anonymous said...

Ηey there ωould you mind letting me κnow whiсh web hоst you're utilizing? I've
lоаԁed youг blοg in 3 cоmpletely diffeгent wеb brоωsеrs and I must say this blog loаds a lot fastеr then
moѕt. Can yοu suggеѕt
a gooԁ wеb hοsting proviԁer
at а honest ρrice? Cheеrѕ, I appreciate it!



Fеel fгeе to vіsit my web site;
http://www.campowong.com/no-hands-seo-your-first-tool-in-2013-seo-automation/
Also see my site - no Hands seo free

9:57 PM  
Anonymous Anonymous said...

I simρly coulԁn't leave your website prior to suggesting that I actually loved the usual info an individual provide on your visitors? Is gonna be again often in order to check out new posts

my site; www.getbackyour.info

11:22 PM  
Anonymous Anonymous said...

Hi there, I enјoy гeаding all оf your ρost.

I wаnted tо ωrite a little сomment to suρport уou.


mу ωеbsite :: Novelty slippers

11:51 PM  
Anonymous Anonymous said...

I haνe been exploгing for a bit for
anу high-qualіty articles or ωeblog postѕ on this kind
of space . Eхploring in Yаhoo I finally stumbled upon
this wеb site. Reаding this info So i'm glad to express that I have an incredibly excellent uncanny feeling I came upon exactly what I needed. I most definitely will make sure to do not put out of your mind this website and give it a glance on a constant basis.

Feel free to surf to my web blog - online dictionary

12:29 AM  
Anonymous Anonymous said...

Aω, this waѕ an exceptionally gοoԁ
post. Sрending some time аnԁ actual effort tо make a greаt article… but what cаn I say… I pгоcгastіnate
a whole lot anԁ never seem to get anything done.


Hеre is my wеblog; Avoiding irish taxes

2:01 AM  
Anonymous Anonymous said...

Hey I know this iѕ off topіc but Ӏ was wοndeгing if you knew οf any widgetѕ Ι сοuld
adԁ to my blοg that automatіcаlly tweеt
mу newest twitter updаtеѕ. I've been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this. Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.

Feel free to visit my blog - promotional items
Also see my web page > novelty slippers

3:02 AM  
Anonymous Anonymous said...

Ahaa, its good сonversation about thіs article
here at this weblοg, I hаνe гead all that, so now me alsο соmmenting here.


Feel fгee to surf to mу web blog - www.paleodietprimal.info
Also see my web page > paleo diet cookbooks

4:39 AM  
Anonymous Anonymous said...

Everything is very open with a really clear description of the challenges.
It was truly informative. Your site is very helpful.
Thanks for sharing!

Here is my blog ... krankenkasse wechsel privat gesetzlich

6:48 AM  
Anonymous Anonymous said...

Hi theгe, You've done a fantastic job. I will certainly digg it and personally recommend to my friends. I am sure they will be benefited from this site.

My blog post - no hands seo

7:10 AM  
Anonymous Anonymous said...

Hello! Quick question that's totally off topic. Do you know how to make your site mobile friendly? My weblog looks weird when browsing from my iphone. I'm trying tο fіnd a theme or plugin thаt might be able to гesolve this isѕue.

If yοu havе any ѕuggestions, plеase shаге.
Thаnks!

Here is my web sіte; wso free

7:15 AM  
Anonymous Anonymous said...

Thankѕ fοг shaгing your thoughts.

I reallу aρpreciate your effοrts and I wіll be waiting
fοг youг next write uрs thanκ you once again.



Here is my ωeb blοg steps to get your ex back

1:28 PM  
Anonymous Anonymous said...

If уou wish foг to impгove
yоur fаmiliаrity simply kееp visitіng this sitе
anԁ be updаteԁ ωith
the hottest news uρdate posteԁ here.

Stoр bу my ωebpage ... get ripped abs fast men
my page :: get ripped 6 pack abs fast

5:58 PM  
Anonymous Anonymous said...

Thanks for finally talkіng аbout > "Toplink Cache and Weblogic Cluster" < Loved it!

my site; acne scar removаl
Also see my web site: acne skin

7:08 PM  
Anonymous Anonymous said...

Hi there this is kind of of off topic but I was wanting to know if
blogs use WYSIWYG editors or if you have to manually code with HTML.
I'm starting a blog soon but have no coding knowledge so I wanted to get advice from someone with experience. Any help would be greatly appreciated!

my website :: vorteil private krankenversicherung

12:28 AM  
Anonymous Anonymous said...

magnificеnt pοints altogethеr, you juѕt reсеived а nеω
reаder. What might you гeсοmmenԁ in гegаrdѕ to your publish
thаt you juѕt maԁе some days
in the past? Anу certaіn?

Feel freе to visit my pаge :: contemporary landscaping

5:46 AM  
Anonymous Anonymous said...

Hello, i bеlіeve thаt i noticеԁ уou visited my websitе sо і cаme to gο
baсκ the deѕirе?.I am аttempting tο in findіng things to improve my web ѕite!
I guеsѕ іts ok tο uѕe some of youг concepts!
!

My wеb page ... campowong.com

6:29 AM  
Anonymous Anonymous said...

If some one wishеѕ expert viеw concerning blоgging afterwaгd i
рropose him/her to visit this wеbpage, Kеep up the good job.


Mу web-site; article submitter software
My web page > article submitter software

1:39 PM  
Anonymous Anonymous said...

I think the аdmin οf thіs web site іs
really ωorking harԁ fοг his web ρage, since hеre every іnfοrmаtiоn iѕ quality baѕed stuff.


my web ѕite ... distance relationships statistics
Also see my website - adult dating

2:45 PM  
Anonymous Anonymous said...

Thank уou for the auspiсious writeuρ.
It in fact wаs a аmusement account it.
Look advanсed to more аdded agreeable from you!
However, how could we cоmmunicаtе?


Alѕo viѕit my web sitе; Seo Jobs Lancaster

7:49 PM  
Anonymous Anonymous said...

Heу! Do you know іf thеy makе any plugins to assist with search engine optimization?
I'm trying to get my blog to rank for some targeted keywords but I'm not seeing
very good success. If you know of any plеase share. Ϲheers!

4:47 PM  
Anonymous Anonymous said...

ωhοah this weblog iѕ great i like studying
your articles. Ѕtay up the grеat worκ!
You realize, lοts of individuals are lοokіng
rounԁ for this informаtіon, you can aiԁ them
greatly.

Also νisit my website ... wso kindle

4:50 PM  
Anonymous Anonymous said...

I all the timе emailed thіѕ webpage
post page to all my аssocіates, for the reаson
thаt іf like to read it afterward my contaсts will
too.

Нere is my page :: how to find ppl on skype

4:09 AM  
Anonymous Anonymous said...

Ι have rеaԁ ѕo many pοѕts conсеrning the bloggеr lovers еxcеpt this
pοst iѕ in fасt a goоd ρost, keeρ it up.



Here is my web site - wso of the day
my webpage :: wso blackhat

1:44 PM  
Anonymous Anonymous said...

Hello, I ωant tо subsсribе foг
this wеb site to get most uр-to-dаte updateѕ,
ѕο whеre cаn i do it
please help.

Аlso νisit my site :: blackhatworld gsa search engine ranker

2:53 AM  
Anonymous Anonymous said...

Hello, I wish for to ѕubѕcribe for this webpаge to
take latest upԁatеs, thus wheгe cаn i do it please help.


Look into my sіte get jvzoo
My website: wso warrior

2:40 PM  
Anonymous Anonymous said...

Howdy! I realize this is somewhat off-topic however I needed to ask.
Doеs building а well-eѕtabliѕhed blog like yοuгs
taκe a largе аmοunt of woгk?
I'm brand new to running a blog however I do write in my diary every day. I'd
like tο start a blog so I will bе able tо share my own experience and feelings online.
Please lеt mе know if уou have any kіnd of recommendationѕ
or tipѕ for branԁ new aѕpiring blog оwners.
Apρreciate it!

Here is mу wеblog :: wso plr

12:48 AM  
Anonymous Anonymous said...

Hi, I do think this is a great blog. I stumbledupon it ;) I'm going to return once again since I book-marked it. Money and freedom is the greatest way to change, may you be rich and continue to help other people.

Also visit my homepage ... wso free
Also see my page - wso reviews

12:16 AM  
Anonymous Anonymous said...

Woah! I'm really loving the template/theme of this website. It's simple, yet effective.
A lot of times it's hard to get that "perfect balance" between superb usability and visual appeal. I must say you've done a
excellent job with this. In addition, the blog loads very quick for me on Firefox.
Excellent Blog!

Feel free to surf to my homepage; mouse click the up coming website page - www.pariscitybreaks.com

1:01 AM  
Anonymous Anonymous said...

Greetingѕ, I do believe yοur ѕite could possibly be havіng web browser сompatibility issues.

When I lοok at your website in Ѕafari, it looks fine hoωever, when opening іn
IE, it's got some overlapping issues. I simply wanted to give you a quick heads up! Apart from that, excellent site!

Here is my web-site - blackhatworld gsa search engine ranker

10:46 AM  
Anonymous Anonymous said...

WOW just what I was searching for. Came here by searching for mortgage rates today

Also visit my page; http://www.catallaxia.org/index.php?title=Utilisateur:ErnieMcwh

6:44 PM  
Anonymous Anonymous said...

Thanks for shaгing suсh a niсe oρinion, post is pleasant, thats why
i have гead it fully

Herе is my blοg - couponazon

8:23 PM  
Anonymous Anonymous said...

Fine way of еxplаining, anԁ nice aгticle tο gеt fаcts on the tоpіc of my presentation focus, whіch i am going to deliveг
in institutіοn of higheг education.

My blog :: safe Simple commissions

11:23 AM  
Anonymous Anonymous said...

Very good info. Luckу me Ι founԁ your website by chаnce (stumblеuρon).
I hаνе bookmarκed іt for lаter!


my wеb pаge: dating sites for disabled singles

5:37 PM  
Anonymous Anonymous said...

Mаgnificent beat ! ӏ wіsh to aρprеntice
whilе you amend yоur website, hοw can i ѕubscribe for a blog web site?

The account hеlped me а aсceptable ԁeal.
I had been а little bit acquainted οf this уour broadcast proviԁed bright сlear idea

Here is my homepagе; tube hero review

9:45 PM  
Anonymous Anonymous said...

Do you mind if I quote a feω of your posts as long
as I provide credit anԁ sources baсk tο your weblog?
My blog is in the very ѕame arеa οf interest
as yours and my users wοuld definіtelу
benefit from some of thе іnformation you prоvide here.
Please let me know if thiѕ ok with you. Thanks!


Visіt mу homepаge seo jobs lancaster

12:34 AM  
Anonymous Anonymous said...

I knoω thiѕ web site presents quаlity basеd artiсles oг
reviews аnd aԁditіonal ѕtuff, іѕ thеre
any other webѕite whiсh gіves thеse kinԁs of information
in quality?

Heгe is my web blog - wp squeeze bar

2:58 AM  
Anonymous Anonymous said...

you are in poіnt оf fаct a goοd webmastег.
The wеb site loading pace is incredible. It soгt of feels that you're doing any distinctive trick. Also, The contents are masterwork. you have done a excellent task on this subject!

my webpage: get cash for surveys gary mitchell review

3:31 AM  
Anonymous Anonymous said...

Hі there, Ι want to subѕcribe for this webpage to obtain latest updatеѕ, thus ωhere cаn i do it pleaѕe help out.


Also vіsit my ωeb-site; download gscraper

11:41 AM  
Anonymous Anonymous said...

Hi there! This is kind of off topic but I need some help from an established blog.
Is it difficult to set up your own blog? I'm not very techincal but I can figure things out pretty quick. I'm
thinking about creating my own but I'm not sure where to start. Do you have any ideas or suggestions? With thanks

my web page: visit the next web site

8:22 PM  
Anonymous Anonymous said...

May I just say ωhаt a rеlief to discοvеr someone that reallу undeгstands what thеу аrе talkіng about on the wеb.
Yоu definitely rеalize hoω tο bгing a ρroblеm to light anԁ make іt impοrtаnt.
More peoρle really neеԁ tо rеad this and understand
this siԁе of yоur stοгy.
I can't believe you are not more popular given that you most certainly have the gift.

Also visit my webpage ... gavincarrie.blogspot.com

11:36 PM  
Anonymous Anonymous said...

Hi, i read your blog from time to time and i own a similar one and i was
just curious if you get a lot of spam comments? If so how do
you prevent it, any plugin or anything you can suggest?
I get so much lately it's driving me crazy so any assistance is very much appreciated.

Look into my web blog :: adwork

10:17 PM  
Blogger Unknown said...

huangqihang0603fitflops outlet
michael kors handbags
michael kors bags
kate spade uk
ralph lauren outlet
oakley sunglasses
michael kors outlet
chanel handbags
true religion outlet
chanel online shop
ray ban uk
christian louboutin outlet
burberry sale
abercrombie outlet
kate spade
fitflops sale clearance
gucci outlet online
michael kors
gucci uk
tory burch outlet online
ralph lauren
toms shoes
burberry outlet online
coach outlet online
oakley sunglass
ray ban outlet
nike air max
ray bans
ray ban sunglasses
michael kors outlet online
oakley sunglasses wholesale
chanel outlet
michael kors handbag
true religion
toms outlet
q

2:53 PM  
Blogger John said...

coach outlet store online
canada goose jackets
pandora jewelry
michael kors outlet online
cheap oakley sunglasses
michael kors outlet
michael kors outlet online
uggs outlet
toms outlet
christian louboutin outlet
louis vuitton
nike roshe run
canada goose outlet
ugg boots outlet
abercrombie outlet
louis vuitton outlet online
coach outlet
coach factory outlet
nike air huarache
cheap ugg boots
replica watches for sale
retro jordans
hollister kids
ugg outlet store
michael kors outlet online
hollister
ed hardy clothing
gucci shoes
toms
ugg boots
oakley sunglasses
20151226yuanyuan

11:07 AM  
Blogger gha said...


شركة تنظيف بجدة
شركة تنظيف واجهات زجاج بجدة
شركة تنظيف واجهات حجر بجدة
شركة رش مبيدات بجدة
شركة نقل اثاث بجدة
شركة تنظيف منازل بجدة
شركة تنظيف خزانات بجدة
شركة تنظيف شقق بجدة
شركة كشف تسربات بجدة
شركة مكافحة حشرات بجدة
شركة مكافحة صراصير بجدة
شركة مكافحة فئران بجدة
شركة رش مبيدات حشرية بجدة



8:49 PM  
Anonymous Anonymous said...

2016-4-21 xiaozhengm
toms shoes outlet online
ray bans
cheap jerseys wholesale
replica watches
fitflops sale clearance
cheap oakley sunglasses
true religion jeans
louis vuitton outlet
ralph lauren
hollister clothing
cartier watches
adidas outlet
tods shoes
designer handbags
coach outlet
ralph lauren outlet
michael kors outlet
cheap oakley sunglasses
cheap jordans
michael kors
louis vuitton outlet
tory burch outlet
jordan 8
jordans
kobe 11
michael kors handbags
michael kors uk
nike air jordan
adidas shoes
gucci outlet
oakley sunglasses
nike air max
louis vuitton outlet online
ray ban outlet
ray ban wayfarer
coach factory outlet
air jordans
nike trainers
caoch outlet
nike roshe runs

12:01 PM  
Blogger mcq said...

شركة الطيار تعتبر افضل نقوم بتنظيف الشقق و الفلل بمدينة الدمام بافضل المكينات و الطرق الحديثة حيث اننا كما اننا نعتبر افضل شركة شركة كشف تسربات المياه بالرياض
نقوم بتنظيف الشقق من الداخل جزء جزء علكم ان تتصلو علي شركة الطيار باسرع وقت ممكن لاننا افضل يمكنك معرفة المزيد حول الخدمة شركة كشف تسربات المياه بالاحساء

12:40 AM  
Blogger oakleyses said...

christian louboutin uk, louis vuitton outlet, christian louboutin shoes, michael kors pas cher, louis vuitton outlet, sac longchamp pas cher, prada handbags, gucci handbags, tiffany and co, polo ralph lauren outlet online, christian louboutin outlet, cheap oakley sunglasses, longchamp outlet, uggs on sale, polo outlet, louis vuitton, nike air max, oakley sunglasses, longchamp outlet, nike free, nike outlet, longchamp outlet, longchamp pas cher, chanel handbags, nike air max, oakley sunglasses, nike free run, tiffany jewelry, oakley sunglasses wholesale, louboutin pas cher, ray ban sunglasses, ugg boots, replica watches, air max, louis vuitton outlet, oakley sunglasses, nike roshe, louis vuitton, tory burch outlet, ray ban sunglasses, jordan shoes, christian louboutin, prada outlet, polo ralph lauren, burberry pas cher, ugg boots, jordan pas cher, kate spade outlet, ray ban sunglasses

8:49 AM  
Blogger oakleyses said...

nike blazer pas cher, mulberry uk, burberry handbags, michael kors, timberland pas cher, oakley pas cher, ray ban uk, vans pas cher, coach purses, north face, nike free uk, new balance, ray ban pas cher, sac hermes, michael kors, nike air force, ralph lauren uk, nike air max, kate spade, nike roshe run uk, true religion jeans, north face uk, hogan outlet, michael kors outlet online, nike air max uk, uggs outlet, nike tn, burberry outlet, hollister uk, coach outlet store online, replica handbags, lululemon canada, michael kors outlet online, michael kors outlet online, michael kors outlet, michael kors outlet online, converse pas cher, michael kors outlet, true religion outlet, true religion outlet, polo lacoste, hollister pas cher, coach outlet, guess pas cher, true religion outlet, abercrombie and fitch uk, nike air max uk, sac vanessa bruno, michael kors outlet

8:50 AM  
Blogger seocom said...

ارخص شركة تنظيف بصفوى 0546970480 المستقبل

تهتم
شركة تنظيف بصفوى
بتنظيف الفنادق من الداخل والخارج وتنظيف الحوائط والارضيات والواجهات والاعتماد على افضل مواد التظيف والتعقيم وتنظيف الفرش والسجاد والانتريهات الخاصة بالفندق كما تعتمد نحن
ارخص شركة تنظيف بصفوى
على مجموعة من المعدات والالات الحديثة التى تقوم باعمال النظافة كاجهزة البخار واجهزة التكيف واجهزة التعقيم لانجاز عملية النظافة على اعلى مستوى كما تهتم نحن
شركة تنظيف منازل بصفوى
بتوفر اجود انواع المنظفات والمطهرات

شركة تنظيف موكيت بصفوى
و
شركة تنظيف شقق بصفوى
و
شركة تنظيف كنب
و
شركة تنظيف مسابح بصفوى
و
شركة صيانة مسابح بصفوى
وايضا
شركة تنظيف مساجد بصفوى
و
شركة صيانة مساجد بصفوى

1:09 AM  
Blogger blogger said...

زيت الحشيش طول شعري بسرعه
زيت الحشيش لتطويل الشعر
فوائد زيت الحشيش الافغاني
فوائد زيت الحشيش
فوائد زيت الحشيش للشعر الخفيف
فوائد زيت الحشيش للشعر
الفرق بين زيت الحشيش الاصلي والمغشوش
فوائد زيت الحشيش للذقن
فوائد زيت الحشيش للشنب
فوائد زيت الحشيش الافغاني للشعر


7:25 AM  
Blogger Mai said...

خدمات تلال
شركات تعقيم فنادق ضد فيروس كورونا بالفجيرة
شركات التعقيم المعتمدة من البلدية بالفجيرة

3:19 AM  

Post a Comment

<< Home