I have Vista SP2, Norton360PE, JRE 1.7.0U51 and Apache-DB Derby v10.10 I have been using Derby under its server framework via port 1527 for years. My other Java applications work after the JRE update, so I don't believe that is the problem. However, the database has not worked after the Norton update; it fails with a socket exception for "localhost:1527".
How can I open port 1527 so my database server can communicate with local client applications?
Once you're sure your software is current (and have rebooted following your upgrade, if it was not), try the following steps:
Open your Norton 360 main screen
Click Settings
Click Firewall
Click the Traffic Rules tab
Click Add
Leave Allow selected, and click Next
Select Connections from other computers and click Next
Select Any computer in the local subnet and click Next
From the drop-down list, select the protocol(s) you need to use; if you don't know, try TCP and UDP
On this same screen, select for the rule to apply only if it matches all of the ports listed below; click Add; select Individually specified ports; type 1527 in the box; click OK; click Next
If you'd like to track when these connections are made, check the top box, to Create a Security History log entry; click Next
Give your new rule a descriptive name, e.g., "Apache-Derby Server Rule"; click Next
Review the settings you have chosen, and if you're satisfied, click Finish
Note that I have made a few assumptions as I composed these steps--starting with assuming, based on your description of this as a Java application, that there isn't a Windows program (.exe) for you to attach this rule to; if there is an Apache server executable in a folder somewhere on your machine, then I'd suggest you try to set this up as a Program Rule specific to it, rather than a general Traffic Rule as specified above, for security reasons. However, since it soulds like you're only using this for client machines on your local subnet--maybe even on the same machine--this shouldn't make much difference.
Let me know if this works for you; if not, there are a few more places where I made an assumprion that may or may not hold for you, and we'll try tweaking those.
The database server, Apache Derby v10.10 (available from db.apache.org/derby/) is distributed as a JAR file and can be executed using any Java Virtual Machine conforming to JVM 1.5+ specifications. I use the Oracle JVM implemented in the command line program java.exe in the environment provided by CMD.
The port I am attempting to access is on my local computer for both the server and the client applications. Derby sees this port as "localhost:1527" in each case.
The Norton program I downloaded says my installation is up to date.
I hope that clears up the things I left out earlier; if not, I will endeavor to do so.
I printed the instuctions you provided so I could use the page as a checklist. I performed each step in order and rebooted my PC. The server failed with the same message.
Next, I changed the value for "connections" to "To and From other computers" because the database traffic is bidirectional. After a reboot, the server threw the same exception and failed.
Next, I changed "Computers" to "any computer." After a reboot, the server threw the same exception and failed.
The changes above were cumulative. I have changed "Computer" back to "any computer in the local subnet."
I will gladly try anything you can suggest. Thanks for your efforts thus far.
OK, so we're on the right track as far as using Traffic Rules rather than Program Rules: you certainly don't want to open that port to all Java code!
We could, theoretically, restrict the rule we create to only that one computer--given your circumstances--but unless you have a fixed IP address for it (unlikely) that would amount to specifying the full range of IPs that it could be assigned...which would be the same thing as "Any computer in the local subnet." LOL
"Connections" should have been fine as "from" only: this doesn't refer to the directionality of the traffic, but rather to who's requesting the connection. For a server, it's the other computer asking the server for something, so it's the requestor. Of course in your case, the client and the server are the same physical computer, so since we're specifying this as a Traffic Rule, it's safer to say "to and from" as you now have, so let's leave it that way.
The default "locality" for the port when you add it is "remote" ...but in this case as you've now clarified it, it's the same computer, so let's try adding one for "local" instead; that may be the "localhost" it's looking for.
Finish the instructions out as before. When the rule has been added, make sure it's at the top of your list--otherwise it could be that some other rule that's a block rather than allow might come along and override it.
Let's leave it at that for now--unless you happen to know that it needs a protocol other than TCP or UDP, in which case you should use that instead when creating the rule above. Also, should you happen to know for sure that Apache is addressing the server using IPv6, you'll want to have checked the box that talks about applying this rule for Teredo on the screen that has the other box for creating a security log entry each time the rule gets applied.
Fingers crossed that this works; it's about the last thing that I can think of, given what you've reported.
Essentially, any program running in a JVM COULD access the server messaging interface, though. I don't really know how this works, as is obvious to anyone reading this thread...
No; I do not have a fixed IP address. My PC "leases" an IPv4 address from my wireless router at connection time.
I obviously misunderstood the "To/From" implications here; thanks for straightening me out on it.
I will try the other tings you have suggested and post the reults here.