|
View:
New views
15 Messages
—
Rating Filter:
Alert me
|
|
|
Need to know how to import a fileHI, Can I know how to import a file which was self written class by us into grinder and import the same file into our test. Thanks Regards, Haritha, HCU QEdge DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
Re: Need to know how to import a fileLets start with some assumptions:
1. your self created class is in a file called testUtilities.py 2. your self created class is called TestRandomiser 3. TestRandomiser contains a method called someMethod 4. The method someMethod requires one attribute to be passed to it called someAttribute 5. you simply want to use the class TestRandomiser in your test script test.py. This is what your script, test.py, would contain: test.py: from testUtilities import TestRandomiser tr = TestRandomiser() tr.someMethod(someAttribute) Is this the information that you were looking for? Cheers Cal 2008/7/2 Haritha_Dandu <Haritha_Dandu@...>: > > > HI, > > Can I know how to import a file which was self written class by us into > grinder and import the same file into our test. > > Thanks > > Regards, > > Haritha, > > HCU QEdge > Vizag City Center (4469). > > > > ________________________________ > DISCLAIMER: > This email (including any attachments) is intended for the sole use of the > intended recipient/s and may contain material that is CONFIDENTIAL AND > PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or > distribution or forwarding of any or all of the contents in this message is > STRICTLY PROHIBITED. If you are not the intended recipient, please contact > the sender by email and delete all copies; your cooperation in this regard > is appreciated. > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > _______________________________________________ > grinder-use mailing list > grinder-use@... > https://lists.sourceforge.net/lists/listinfo/grinder-use > > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
testing on different protocolsHi
As grinder supportsHTTP, HTTPS, SOAP, XML-RPC, JDBC, IIOP, RMI/IIOP, RMI/JRMP, JMS, POP3, SMTP, FTP, LDAP I want to test for all the protocols. I tried with http And somewhere we are not able to do with https,smtp Could we know if the process is known? Thanks. Haritha. -----Original Message----- From: grinder-use-bounces@... [mailto:grinder-use-bounces@...] On Behalf Of Calum Fitzgerald Sent: Wednesday, July 02, 2008 4:15 PM To: grinder-use Subject: Re: [Grinder-use] Need to know how to import a file Lets start with some assumptions: 1. your self created class is in a file called testUtilities.py 2. your self created class is called TestRandomiser 3. TestRandomiser contains a method called someMethod 4. The method someMethod requires one attribute to be passed to it called someAttribute 5. you simply want to use the class TestRandomiser in your test script test.py. This is what your script, test.py, would contain: test.py: from testUtilities import TestRandomiser tr = TestRandomiser() tr.someMethod(someAttribute) Is this the information that you were looking for? Cheers Cal 2008/7/2 Haritha_Dandu <Haritha_Dandu@...>: > > > HI, > > Can I know how to import a file which was self written class by us into > grinder and import the same file into our test. > > Thanks > > Regards, > > Haritha, > > HCU QEdge > Vizag City Center (4469). > > > > ________________________________ > DISCLAIMER: > This email (including any attachments) is intended for the sole use of the > intended recipient/s and may contain material that is CONFIDENTIAL AND > PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or > distribution or forwarding of any or all of the contents in this message is > STRICTLY PROHIBITED. If you are not the intended recipient, please contact > the sender by email and delete all copies; your cooperation in this regard > is appreciated. > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > _______________________________________________ > grinder-use mailing list > grinder-use@... > https://lists.sourceforge.net/lists/listinfo/grinder-use > > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
HTTPS RECORDINGHI
I have tried using https recording and I got the following error in the script as follows rom net.grinder.script import Test from net.grinder.script.Grinder import grinder from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest from HTTPClient import NVPair connectionDefaults = HTTPPluginControl.getConnectionDefaults() httpUtilities = HTTPPluginControl.getHTTPUtilities() # To use a proxy server, uncomment the next line and set the host and port. # connectionDefaults.setProxyServer("localhost", 8001) # These definitions at the top level of the file are evaluated once, # when the worker process is started. class TestRunner: """A TestRunner instance is created for each worker thread.""" def __call__(self): """This method is called for every run performed by the worker thread.""" # Empty recording! pass def instrumentMethod(test, method_name, c=TestRunner): """Instrument a method with the given Test.""" unadorned = getattr(c, method_name) import new method = new.instancemethod(test.wrap(unadorned), None, c) setattr(c, method_name, method) any suggestions on this. DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
Re: testing on different protocolsHaritha_Dandu wrote:
> Hi > As grinder supportsHTTP, HTTPS, SOAP, XML-RPC, JDBC, IIOP, RMI/IIOP, RMI/JRMP, JMS, POP3, SMTP, FTP, LDAP > I want to test for all the protocols. > I tried with http > And somewhere we are not able to do with https,smtp > Could we know if the process is known? > The Grinder works fine out of the box with HTTPS - no additional libraries required. You'll need to be clearer about the problems you are having. For SMTP, you'll need to use JavaMail. Example at http://grinder.sourceforge.net/g3/script-gallery.html#email - Phil ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
parametrisationHi We are working with grinder 3 We need help on recording the script in https as we are not able to record the script of an secured site but we are doing well with http sites. Down is the script I am getting while recording an secure site saying that it is empty recording # HTTP script recorded by TCPProxy at Jul 3, 2008 3:20:02 PM from net.grinder.script import Test from net.grinder.script.Grinder import grinder from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest from HTTPClient import NVPair connectionDefaults = HTTPPluginControl.getConnectionDefaults() httpUtilities = HTTPPluginControl.getHTTPUtilities() # To use a proxy server, uncomment the next line and set the host and port. # connectionDefaults.setProxyServer("localhost", 8001) # These definitions at the top level of the file are evaluated once, # when the worker process is started. class TestRunner: """A TestRunner instance is created for each worker thread.""" def __call__(self): """This method is called for every run performed by the worker thread.""" # Empty recording! pass def instrumentMethod(test, method_name, c=TestRunner): """Instrument a method with the given Test.""" unadorned = getattr(c, method_name) import new method = new.instancemethod(test.wrap(unadorned), None, c) setattr(c, method_name, method) could you please assist us as the procedure if any one followed while recoding https DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
error with https protocolHi
I am using the following tcp proxy to run the https protocol and I have pated the error below which I get D:\testgrinder>java net.grinder.TCPProxy -httpsproxy 172.26.1.11 80 -http -cons ole>haru.py 7/3/08 5:57:06 PM (tcpproxy): Initialising as an HTTP/HTTPS proxy with the parameters: Request filters: HTTPRequestFilter Response filters: HTTPResponseFilter Local address: localhost:8001 HTTPS proxy: 172.26.1.11:80 7/3/08 5:57:07 PM (tcpproxy): Engine initialised, listening on port 8001 7/3/08 5:57:34 PM (tcpproxy): Failed to connect to go.microsoft.com:80 (Connection timed out: connect) 7/3/08 5:57:34 PM (tcpproxy): Failed to connect to go.microsoft.com:80 (Connection timed out: connect) 7/3/08 5:57:47 PM (tcpproxy): Engine exited DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
connecting to remote machine for load distributionHi ,
We have followed the following procedure on the load distribution. I have stated below the procedure followed. Could you please assist if there is any deviation from the procedure. Grinder Agent Remote Worker Processing: This is the method we have followed If you need multiple agents: 1. Find the IP addresses. On each machine: ipconfig /all Look for IP Address: . . . . . . . . . . . . : picked up my system IP 2. Changed grinder. Properties file to specify the IP address of your Console machine: grinder.consoleHost=172.26.3.85(IP address of my system where console, agent and worker processes are running) 3. Make sure the Console machine can connect to the agent. Run a command prompt and type: ping 172.26.4.63(the machine on which I am trying distribute load :6372) Note: Port 6372 is the default port for the agent and worker processes to contact the Console. or Telnet 172.26.4.63:6372 4. Run another command Window and invoke the Grinder agent on the agent machine: java net.grinder.Grinder "Waiting for console signal" should appear. But getting an errors like: Case i)when using Telnet option with the port number, Result: C:\>telnet 172.26.4.63 6372 Connecting To 172.26.4.63...Could not open connection to the host, on port 6372: Connect failed Case ii)when using Telnet option without port number, Result we got: Failed to run the script on localhost/6372,could not find the grinder.py file. Under the Console's "Processes" tab, a new process (identified by the machine name) should have State "Connected" Inputs needed: Need correction on,the process followed.If possible guide us through the exact process or still some technical guidance on load distribution process in grinder DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
ParametrizationHi ,
This is the code written import sys import string import random from java.lang import String from java.net import URLEncoder from net.grinder.script import Test from net.grinder.script.Grinder import grinder #import D:\grinder scripts\uids.txt class TestRandomise: def __init__(self, uids): self._users = [] infile = open('uids.txt', 'r') for line in infile.readlines(): self._users.append(string.split((line),',')) infile.close() def getUserInfo(self): # "Pick a random (user, password) from the list." return random.choice(self._users) # # Test script. Originally recorded by the TCPPro My properties file grinder.processes=1 grinder.threads=1 grinder.runs=1 grinder.script=grinder3.py grinder.jvm.arguments=-Dpython.home=D:\grinder-3.0.1\lib while running the above self written code I am getting the following errors 7/3/08 12:39:39 PM (process vcc-pcs34003-0): Error running worker process (ImportError: no module named random File "D:\grinder scripts\.\vcc-pcs34003-file-store\current\grinder3.py", line 11, in ?) ImportError: no module named random File "D:\grinder scripts\.\vcc-pcs34003-file-store\current\grinder3.py", line 11, in ? Could you please make out and give us a solution to the method of parametrisation. DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
Need help on parametizationSCRIPT I have used to do parameterization:
import sys import string import random from java.lang import String from java.net import URLEncoder from net.grinder.script import Test from net.grinder.script.Grinder import grinder #import D:\grinder scripts\uids.txt class TestRandomise: def __init__(self, uids): self._users = [] infile = open('uids.txt', 'r') for line in infile.readlines(): self._users.append(string.split((line),',')) infile.close() def getUserInfo(self): # "Pick a random (user, password) from the list." return random.choice(self._users) PROPERTIES file for my script: grinder.processes=1 grinder.threads=1 grinder.runs=1 grinder.script=grinder3.py grinder.jvm.arguments=-Dpython.home=D:\grinder-3.0.1\lib ERROR I am getting: grinder.processes=1 grinder.threads=1 grinder.runs=1 grinder.script=grinder3.py grinder.jvm.arguments=-Dpython.home=D:\grinder-3.0.1\lib could you please help in the process if used above is wrong we are using grinder 3 version. Thanks DISCLAIMER: This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
|
|
|
Re: parametrisationHaritha_Dandu wrote:
> We are working with grinder 3 > We need help on recording the script in https as we are not able to record the script of an secured site but we are doing well with http sites. > Down is the script I am getting while recording an secure site saying that it is empty recording > # HTTP script recorded by TCPProxy at Jul 3, 2008 3:20:02 PM > > from net.grinder.script import Test > from net.grinder.script.Grinder import grinder > from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest > from HTTPClient import NVPair > connectionDefaults = HTTPPluginControl.getConnectionDefaults() > httpUtilities = HTTPPluginControl.getHTTPUtilities() > > # To use a proxy server, uncomment the next line and set the host and port. > # connectionDefaults.setProxyServer("localhost", 8001) > > # These definitions at the top level of the file are evaluated once, > # when the worker process is started. > > > class TestRunner: > """A TestRunner instance is created for each worker thread.""" > > def __call__(self): > """This method is called for every run performed by the worker thread.""" > > # Empty recording! > pass > > > def instrumentMethod(test, method_name, c=TestRunner): > """Instrument a method with the given Test.""" > unadorned = getattr(c, method_name) > import new > method = new.instancemethod(test.wrap(unadorned), None, c) > setattr(c, method_name, method) > could you please assist us as the procedure if any one followed while recoding https > > What happens in the browser? It looks like no requests have been passed through the TCPProxy. The most likely reason for this is that you have not configured your browser to use the TCPProxy as an HTTPS proxy. - Phil ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
Re: error with https protocolHaritha_Dandu wrote:
> Hi > I am using the following tcp proxy to run the https protocol and I have pated the error below which I get > D:\testgrinder>java net.grinder.TCPProxy -httpsproxy 172.26.1.11 80 -http -console>haru.py > When you use your browser normally, do you configure an HTTPS proxy? If so, I'm guessing its actually 172.26.1.11:443, not 172.26.1.11:80. If you don't normally set an HTTPS proxy in your browser, remove the -httpsproxy option from the command line. To be clear, the TCPProxy handles HTTP and HTTP connections with just the "-http" switch. -httpsproxy controls whether TCPProxy uses a further HTTPS connections to establish HTTPS connections and -httpproxy does the same for HTTP connections. - Phil ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
Re: error with https protocolHaritha_Dandu wrote:
> Hi > I am using the following tcp proxy to run the https protocol and I have pated the error below which I get > D:\testgrinder>java net.grinder.TCPProxy -httpsproxy 172.26.1.11 80 -http -console>haru.py > When you use your browser normally, do you configure an HTTPS proxy? If so, I'm guessing its actually 172.26.1.11:443, not 172.26.1.11:80. If you don't normally set an HTTPS proxy in your browser, remove the -httpsproxy option from the command line. To be clear, the TCPProxy handles HTTP and HTTP connections with just the "-http" switch. -httpsproxy controls whether TCPProxy uses a further HTTPS connections to establish HTTPS connections and -httpproxy does the same for HTTP connections. - Phil ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
|
|
Re: connecting to remote machine for load distributionHaritha_Dandu wrote:
> Hi , > We have followed the following procedure on the load distribution. I have stated below the procedure followed. > Could you please assist if there is any deviation from the procedure. > Grinder Agent Remote Worker Processing: > This is the method we have followed > > If you need multiple agents: > 1. Find the IP addresses. On each machine: > ipconfig /all > Look for IP Address: . . . . . . . . . . . . : picked up my system IP > 2. Changed grinder. Properties file to specify the IP address of your Console machine: > grinder.consoleHost=172.26.3.85(IP address of my system where console, agent and worker processes are running) > 3. Make sure the Console machine can connect to the agent. Run a command prompt and type: > ping 172.26.4.63(the machine on which I am trying distribute load :6372) > Note: Port 6372 is the default port for the agent and worker processes to contact the Console. > or > Telnet 172.26.4.63:6372 > 4. Run another command Window and invoke the Grinder agent on the agent machine: > java net.grinder.Grinder > "Waiting for console signal" should appear. > But getting an errors like: > > Case i)when using Telnet option with the port number, > Result: > C:\>telnet 172.26.4.63 6372 > Connecting To 172.26.4.63...Could not open connection to the host, on port 6372: > Connect failed > This indicates that either there is no console process listening on port 6372 on the machine with IP address 172.26.4.63 (did you start it?), or that some component (e.g. a firewall on the client or on the server, or in the network path) is preventing connections to that port. - Phil ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ grinder-use mailing list grinder-use@... https://lists.sourceforge.net/lists/listinfo/grinder-use |
| Free Forum Powered by Nabble | Forum Help |