1 last thing to add...
Not sure how you are logging, but you can also turn up logging using (and
even write to a log file)...
<util:properties id="gemfireProperties">
<prop key="name">SpringDataGemFireServer</prop>
<prop key="log-level">${gemfire.log.level:config}</prop>
<prop key="log-file">${gemfire.log.file:gemfire-server.log}</prop>
<prop key="start-locator">${gemfire.locator.host-port:localhost[10334]}
</prop>
</util:properties>
<gfe:cache properties-ref="gemfireProperties"/>
Perhaps the GemFire log file can tell us a bit more about what it was doing
before it led up to...
Failed to readjava.io.IOException: Bad file descriptor
Which is a very peculiar error message which can be caused for several
reasons.
Anyway, I am just thinking out-loud now, but hopefully gives you enough to
chew on.
Thanks,
-John
On Tue, Jun 13, 2017 at 4:41 PM, John Blum <[email protected]> wrote:
> Also, for clarification, I have not seen this error on Ubuntu, using
> nohup...
>
> Failed to readjava.io.IOException: Bad file descriptor
>
> Perhaps you could share your configuration as well.
>
> -j
>
> On Tue, Jun 13, 2017 at 4:38 PM, John Blum <[email protected]> wrote:
>
>> Continuing from where I left off, sorry (damn email program and fat
>> finger typing)...
>>
>> So... the moment you add...
>>
>> <gfe:cache-server id="gemfireCacheServer" auto-startup="true"
>> bind-address="${gemfire.cache.server.bind-address:localhost}"
>> host-name-for-clients="${gemfire.cache.server.hostname-for
>> -clients:localhost}"
>> port="${gemfire.cache.server.port:40404}"/>
>>
>> Your, what was previously just a "GemFire Server", now has become a
>> "GemFire CacheServer", with the ability to "serve" GemFire cache client
>> applications (i.e. ClientCaches) and the *Spring* configured/launched
>> (e.g. with *Spring Boot* perhaps) GemFire Server will *NOT* fall through.
>>
>> I have plenty examples of this in my pivotal-gemfire-clientserver-e
>> xamples GitHub project
>> <https://github.com/jxblum/pivotal-gemfire-clientserver-examples> [3] as
>> well as another project, spring-boot-gemfire-server-example
>> <https://github.com/jxblum/spring-boot-gemfire-server-example>. [4]
>>
>> Additionally, you may see some examples I wrote where I *don't*
>> explicitly want my "GemFire Server" (peer member/data node) to be a "
>> CacheServer", in which case, I must take care to prevent the "GemFire
>> Server" from passing through and shutting down, like so...
>>
>> 1. Note this
>> <https://github.com/jxblum/spring-gemfire-tests/blob/master/src/main/java/org/spring/data/gemfire/app/main/PeerCacheApp.java#L28>
>> [5].
>>
>> 2. And this
>> <https://github.com/jxblum/spring-gemfire-tests/blob/master/src/main/java/org/spring/data/gemfire/app/main/PeerCacheApp.java#L33>
>> [6].
>>
>> 3. Then this
>> <https://github.com/jxblum/spring-gemfire-tests/blob/master/src/main/java/org/spring/data/gemfire/app/main/AbstractApp.java#L46-L54>
>> [7].
>>
>> 4. Next this
>> <https://github.com/jxblum/spring-gemfire-tests/blob/master/src/main/java/org/spring/data/gemfire/app/main/AbstractApp.java#L74>
>> [8].
>>
>> 5. And finally, this
>> <https://github.com/jxblum/spring-gemfire-tests/blob/master/src/main/java/org/spring/data/gemfire/app/main/AbstractApp.java#L41-L44>
>> [9].
>>
>> No CacheServer is present in this example, but the GemFire JVM process
>> won't exit either since it is waiting on input, blocking the main
>> application Thread.
>>
>> The only other way to get the *Spring-*configured GemFire Server (*non*-
>> CacheServer) from not exiting is to configure (with Spring) and launch
>> with Gfsh, like so..
>>
>> gfsh> start server --name=SpringConfiguredGemFireServer *--classpath*
>> =/path/to/necessary/spring/jars *--spring-xml-location*
>> =/absolute/classpath/to/spring/context.xml
>>
>> Saying "context.xml" was the Spring XML configuraton shown above
>> *without* the (<gfe:cache-server>) element.
>>
>> Also, with *Apache Geode* and *Pivotal GemFire* *9*, you would need to
>> explicitly add the SDG and other *Spring* JARs to the GemFire Server's
>> classpath when started from *Gfsh*.
>>
>> Hope this helps.
>>
>> Cheers!
>> -John
>>
>>
>> [3] https://github.com/jxblum/pivotal-gemfire-clientserver-examples
>> [4] https://github.com/jxblum/spring-boot-gemfire-server-example
>> [5] https://github.com/jxblum/spring-gemfire-tests/blob/mast
>> er/src/main/java/org/spring/data/gemfire/app/main/PeerCacheApp.java#L28
>> [6] https://github.com/jxblum/spring-gemfire-tests/blob/mast
>> er/src/main/java/org/spring/data/gemfire/app/main/PeerCacheApp.java#L33
>>
>>
>> On Tue, Jun 13, 2017 at 4:22 PM, John Blum <[email protected]> wrote:
>>
>>> Hi Amit-
>>>
>>> Also maybe you could clarify a bit by what you mean by "Cache Server"?
>>>
>>> Outside of *Gfsh*, which has and uses "special logic
>>> <https://github.com/apache/geode/blob/rel/v1.1.1/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java#L904-L928>"
>>> [1] *to prevent* a "forked" GemFire Server (JVM) process from actually
>>> shutting down (I know; I wrote it) as there is literally *nothing* (e.g.
>>> no *non-daemon* Threads) that would prevent a normal "GemFire Server"
>>> from passing through completely and the JVM just exiting.
>>>
>>> When you start a "CacheServer
>>> <http://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/server/CacheServer.html>"
>>> [2], which *should not* be confused with a "GemFire Server", does there
>>> exist any such Thread; a *non-daemon* Thread that is listening on the
>>> configured CacheServer TCP ServerSocket for ClientCache (i.e. GemFire
>>> cache client) connections.
>>>
>>> To make this a little more apparent (in XML), if your SDG XML
>>> configuration consisted of only...
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>> <beans xmlns="http://www.springframework.org/schema/beans"...">
>>>
>>> <util:properties id="gemfireProperties">
>>> <prop key="name">SpringDataGemFireServer</prop>
>>> <prop key="log-level">${gemfire.log.level:config}</prop>
>>> <prop key="start-locator">${gemfire.locator.host-port:localhost[10
>>> 334]}</prop>
>>> </util:properties>
>>>
>>> <gfe:cache properties-ref="gemfireProperties"/>
>>> </beans>
>>>
>>> Then what you have here is *not* a "CacheServer"; it is a plain
>>> "GemFire Server", aka Data Node, aka Peer Member Cluster this
>>> configuration, lauched outside of *Gfsh* is going to fall straight
>>> through!
>>>
>>> However, the moment you add...
>>>
>>> <gfe:cache-server id="gemfireCacheServer" auto-startup="true"
>>> bind-address="${gemfire.cache.server.bind-address:localhost}"
>>> host-name-for-clients="${gemfire.cache.server.hostname-for
>>> -clients:localhost}"
>>> port="${gemfire.cache.server.port:40404}"/>
>>>
>>> [1] https://github.com/apache/geode/blob/rel/v1.1.1/geode-co
>>> re/src/main/java/org/apache/geode/distributed/ServerLauncher
>>> .java#L904-L928
>>> [2] http://geode.apache.org/releases/latest/javadoc/org/apac
>>> he/geode/cache/server/CacheServer.html
>>>
>>>
>>> On Tue, Jun 13, 2017 at 1:59 PM, Jens Deppe <[email protected]> wrote:
>>>
>>>> Hi Amit,
>>>>
>>>> Exactly what commands are you executing to launch your server? Using
>>>> 'nohup' with gfsh works but I'm guessing that's not what you're doing.
>>>>
>>>> --Jens
>>>>
>>>> On Tue, Jun 13, 2017 at 1:47 PM, Amit Pandey <[email protected]
>>>> > wrote:
>>>>
>>>>> Hi Guys,
>>>>>
>>>>> When ever I am starting Spring-Data Gemfire server with nohup , I get
>>>>> this error in Ubuntu (AWS)
>>>>>
>>>>> Cache Server started Successfully ...
>>>>> Failed to readjava.io.IOException: Bad file descriptor
>>>>> [info 2017/06/13 20:46:36.608 UTC <Distributed system shutdown hook>
>>>>> tid=0x10] VM is exiting - shutting down distributed system
>>>>> Can anyone please help with this
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> -John
>>> john.blum10101 (skype)
>>>
>>
>>
>>
>> --
>> -John
>> john.blum10101 (skype)
>>
>
>
>
> --
> -John
> john.blum10101 (skype)
>
--
-John
john.blum10101 (skype)