The strangest CF error ever: IP_ADD_MEMBERSHIP failed (out of hardware filters?)

So today I tried to cfdump something to see what was available for methods and data, but when I'd run the code with the cfdump in place, I would get:

view plain print about
1IP_ADD_MEMBERSHIP failed (out of hardware filters?)
2net.sf.ehcache.CacheException: IP_ADD_MEMBERSHIP failed (out of hardware filters?)
3at
4net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider.init(MulticastRMICacheManagerPeerProvider.java:93)
5at net.sf.ehcache.CacheManager.init(CacheManager.java:241)
6at net.sf.ehcache.CacheManager.(CacheManager.java:221)

Remove the cfdump, things worked fine. Add it back in, get the error. I restarted the server, no good. So I googled. And I found something!! Google knows all, Google sees all.

Strangest freaking error message and behavior evar!

But, thanks to Microsoft via Brian Kotek through Ray Camden, I got the right idea... but the technote was for the wrong version of windows. Back to Google, Sauron's Eye of the Interwebs, and behold, an answer on Microsoft Answers.

Once you've issued the command-line bits you'll need to restart your J2EE server... but boom... it all worked!

And for those hearty souls that like the nitty-gritty, here's the dope on this issue.

UPDATE: OK, so it turns out I should have read the comments on Ray's blog entry, because the link status detect didn't fix the issue. Turns out it's a result of EHCache trying to use multicast (yes, that'd be UDP) over VPN... apparently notoriously unsupported but breaks CF's default EHCache settings. So, the solution is fairly simple, really...

Edit {jrun_home}/servers/{server_name}/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib/ehcache.xml and remark out the following two lines:

view plain print about
1<cacheManagerPeerProviderFactory
2 class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
3 properties="peerDiscovery=automatic,
4 multicastGroupAddress=230.0.0.1,
5 multicastGroupPort=4446, timeToLive=1"

6 propertySeparator=","
7/>

8<cacheManagerPeerListenerFactory
9 class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>

Make those changes (the lines come after descriptive comments, I just moved the comment closer down 2 lines), restart your J2EE instance and you're golden!

Either that or spend your workday in isolation, dropped off VPN! lol

Windows Advanced Query Syntax -- cumbersome, but useful!

Remember back in the Windows 2000 and Windows XP days? Hit F3 and have a set of fields you could type in to find about anything? Well in Windows Vista and Windows 7 that's gone and the search UI is utterly atrocious. Enter AQS.

There's more on the subject here, but it looks like a SQL-esque sort of filtering syntax to let you narrow down your search results.

Let's say you want to see all the JPG or PNG files starting with the letters "map" under the normal Windows webroot:

view plain print about
1folderpath:C:\InetPub\WWWRoot\* filename:map ext:(jpg OR png)

It took me 45 minutes to figure that out. Thanks MS. "Efficient" you are not, but at least you've provided a way to do this since you stripped all the decent UI for doing searches out of Windows after XP. Until I added the parens around the file extensions it found all the JPGs with MAP in the name and ALL the PNG files in the folder. Also not that without the wildcard at the end of the file path it only searches that folder... you have to add the wildcard to have it search the entire tree (actually kinda nice if you have a set of folders with a common portion of the name). Also interesting is the fact that "map" is the same as "*map*".

I guess this is gonna take a while to get used to... but since I'm stuck on Windows 7 at work, I suppose I'll figure it out. ;)

Oh, and there is a semi-decent AQS reference at the MSDN page on AQS. At least it's more complete than the link at the beginning of this post.

Laterz!

BlogCFC was created by Raymond Camden. This blog is running version 5.9.7. Contact Blog Owner