You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by vbm <bm...@gmail.com> on 2018/06/07 14:28:01 UTC

ignite peer class loading query

Hi,

I have a Ignite server running with 3rd partyDB (MYSQL). I have the below
configuration in xml file:

<bean id="dsMysql_DB"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="url" value="jdbc:mysql://10.x.y.z:8009/MYSQL_DB"/>
  <property name="username" value="user"/>
  <property name="password" value="passwd"/>
</bean>

<bean class="org.apache.ignite.configuration.IgniteConfiguration">
* <property name="peerClassLoadingEnabled" value="true"/>*
  ...
</bean>
</beans>

On the server the jar for mysql jdbc driver is present iand the servers are
coming up successfully.
I have placed the mysql jdbc driver in a seperate folder and added it to the
path using USER_LIBS env.


Now if I try to start a client, with the same the xml (only extra thing is
the client mode part), the client ignite node doesn't start and throws below
error.

* org.springframework.beans.MethodInvocationException: Property
'driverClassName' threw exception; nested exception is
java.lang.IllegalStateException: Could not load JDBC driver class
[com.mysql.jdbc.Driver]*

As peer class loading is enabled, I expect the client to get the class from
the server. Why is this not happening ?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: ignite peer class loading query

Posted by Andrey Mashenkov <an...@gmail.com>.
1. Peer-classloading is designed for compute jobs. All other classes
(except may be user domain classes when BinaryObjects are used) must be in
classpath on all nodes.
2. Next is true for transactional cache. Client node must have a CacheStore
drivers as well as server nodes. This because a request-initiator node is
responsible to update cache store.
That means when you go put() from client, the client node will be
responsible for update underlying store.
May be this will be fixed at least for atomic caches in future versions,
but the requirement to have drivers on client doesn't look a serious issue.


On Thu, Jun 7, 2018 at 6:11 PM, David Harvey <dh...@jobcase.com> wrote:

> Certain kinds of requests (e.g., remote calls) carry enough information
> for the receiver of the message to do peer class loading.   The main
> purpose of peer class loading is to avoid the need to restart the server to
> install software, and the peer class loading is therefore done by the
> server requesting the class from the client who sent the request.
>
> It is not targeted at what you are trying to do.
>
> On Thu, Jun 7, 2018 at 10:28 AM, vbm <bm...@gmail.com> wrote:
>
>> Hi,
>>
>> I have a Ignite server running with 3rd partyDB (MYSQL). I have the below
>> configuration in xml file:
>>
>> <bean id="dsMysql_DB"
>> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>>   <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
>>    <property name="url" value="jdbc:mysql://10.x.y.z:8009/MYSQL_DB"/>
>>   <property name="username" value="user"/>
>>   <property name="password" value="passwd"/>
>> </bean>
>>
>> <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>> * <property name="peerClassLoadingEnabled" value="true"/>*
>>   ...
>> </bean>
>> </beans>
>>
>> On the server the jar for mysql jdbc driver is present iand the servers
>> are
>> coming up successfully.
>> I have placed the mysql jdbc driver in a seperate folder and added it to
>> the
>> path using USER_LIBS env.
>>
>>
>> Now if I try to start a client, with the same the xml (only extra thing is
>> the client mode part), the client ignite node doesn't start and throws
>> below
>> error.
>>
>> * org.springframework.beans.MethodInvocationException: Property
>> 'driverClassName' threw exception; nested exception is
>> java.lang.IllegalStateException: Could not load JDBC driver class
>> [com.mysql.jdbc.Driver]*
>>
>> As peer class loading is enabled, I expect the client to get the class
>> from
>> the server. Why is this not happening ?
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>>
>
>
> *Disclaimer*
>
> The information contained in this communication from the sender is
> confidential. It is intended solely for use by the recipient and others
> authorized to receive it. If you are not the recipient, you are hereby
> notified that any disclosure, copying, distribution or taking action in
> relation of the contents of this information is strictly prohibited and may
> be unlawful.
>
> This email has been scanned for viruses and malware, and may have been
> automatically archived by *Mimecast Ltd*, an innovator in Software as a
> Service (SaaS) for business. Providing a *safer* and *more useful* place
> for your human generated data. Specializing in; Security, archiving and
> compliance. To find out more Click Here
> <http://www.mimecast.com/products/>.
>



-- 
Best regards,
Andrey V. Mashenkov

Re: ignite peer class loading query

Posted by David Harvey <dh...@jobcase.com>.
Certain kinds of requests (e.g., remote calls) carry enough information for
the receiver of the message to do peer class loading.   The main purpose of
peer class loading is to avoid the need to restart the server to install
software, and the peer class loading is therefore done by the server
requesting the class from the client who sent the request.

It is not targeted at what you are trying to do.

On Thu, Jun 7, 2018 at 10:28 AM, vbm <bm...@gmail.com> wrote:

> Hi,
>
> I have a Ignite server running with 3rd partyDB (MYSQL). I have the below
> configuration in xml file:
>
> <bean id="dsMysql_DB"
> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>   <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
>    <property name="url" value="jdbc:mysql://10.x.y.z:8009/MYSQL_DB"/>
>   <property name="username" value="user"/>
>   <property name="password" value="passwd"/>
> </bean>
>
> <bean class="org.apache.ignite.configuration.IgniteConfiguration">
> * <property name="peerClassLoadingEnabled" value="true"/>*
>   ...
> </bean>
> </beans>
>
> On the server the jar for mysql jdbc driver is present iand the servers are
> coming up successfully.
> I have placed the mysql jdbc driver in a seperate folder and added it to
> the
> path using USER_LIBS env.
>
>
> Now if I try to start a client, with the same the xml (only extra thing is
> the client mode part), the client ignite node doesn't start and throws
> below
> error.
>
> * org.springframework.beans.MethodInvocationException: Property
> 'driverClassName' threw exception; nested exception is
> java.lang.IllegalStateException: Could not load JDBC driver class
> [com.mysql.jdbc.Driver]*
>
> As peer class loading is enabled, I expect the client to get the class from
> the server. Why is this not happening ?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>
>

Disclaimer

The information contained in this communication from the sender is confidential. It is intended solely for use by the recipient and others authorized to receive it. If you are not the recipient, you are hereby notified that any disclosure, copying, distribution or taking action in relation of the contents of this information is strictly prohibited and may be unlawful.

This email has been scanned for viruses and malware, and may have been automatically archived by Mimecast Ltd, an innovator in Software as a Service (SaaS) for business. Providing a safer and more useful place for your human generated data. Specializing in; Security, archiving and compliance. To find out more visit the Mimecast website.