How to install Hudson on windows server 2008? - installation

I'm calm... Everyone loves windows...
1,2,3,4,5...10
Ok
How to install Hudson on windows 2008?
More specifically - what exactly is 'Windows filtering platform' thingy and how to kick it so it would allow Hudson pass through?
This is what i get in event log when i hit java -jar hudson.war and try to open web page:
The Windows Filtering Platform has blocked a bind to a local port.
Application Information:
Process ID: 2896
Application Name: \device\harddiskvolume1\windows\system32\java.exe
Network Information:
Source Address: ::
Source Port: 5353
Protocol: 17
Filter Information:
Filter Run-Time ID: 0
Layer Name: Resource Assignment
Layer Run-Time ID: 38
Temporary disabled firewall through control panel - nothing changed.

I'm kind of speculating here, but maybe try running it in Tomcat? I'd hope the Tomcat team put the work into their installer/Windows Service to have it handle port binding without too much headache...

http://social.msdn.microsoft.com/Forums/en-US/wfp/thread/774026e6-a771-418a-b531-22183ef399f8
The problem you're having is that, while you turned off the firewall, the rules are still affecting it. Try disabling MPSSvc and running it again. Or try:
Netsh.exe AdvFirewall Set CurrentProfile State Off
Obviously, be very careful if this is a production environment.

We've been running Hudson in Apache Tomcat on Windows Servers for almost two years now without incident. I never even tried to run it through IIS (assuming that's what you're using). Just run the Windows installer for Tomcat 6.0 (7.0 may not yet be supported) and then drop hudson.war in the Tomcat webapps directory. Tomcat will automatically extract the .war contents and start up the application. You may also want to get into the Hudson configuration files and set the value of the HUDSON_HOME directory if you don't want it to use the default.

Related

internal server error when trying to access asp.net core app hosted in IIS 10

I used VS2017 to create an ASP.NET core API app, just a simple one.. I didn't even make any changes to it. it was able to compile just fine, able to debug in IIS Express just fine.. you know, the default /api/values which returns {value1, value2}.. just the default..
I tried to host it in IIS 10 on Windows 10. Added an application pool which has .NET CLR version set to "No managed code", keeping everything else as default. Using VS2017, published to folder, set IIS to point to that folder, set it to use port 8080. tried accessing it in browser with 127.0.0.1:8080/api/values and.. HTTP Error 500.19 - Internal Server Error. why? what did I not do?
In command prompt, typing dotnet --info shows the version as 2.1.200, and the .net framework as 2.0.7. In fact, I was even able to run the app directly from the command prompt by typing "dotnet .dll" and it would show listening on port 5000 and I was able to use browser to access 127.0.0.1:5000/api/values and the {values1, values2} would appear in the browser. But why is it that I can't use IIS to host it?
Talking about using command prompt to run the app using kestrel, I noticed a strange thing. setting the args in configure, I was able to use urls to dynamically change the port that kestrel is listening on, and I was able to enable remote access to kestrel using dotnet .dll --urls http://*:5050 for example, and it works fine.. BUT.. when I set the port to 6000 or greater, kestrel would say it's listening on that port, but remote client would not be able to access it. has anyone encountered this? using ports in the range of 5000~5999 works fine.. why?
Ensure the following:
.NET Core Hosting Bundle installed on the hosting server - https://www.microsoft.com/net/download/all
Application Pool .NET CLR version set to "No Managed Code"
Ensure that the Application Pool Identity user has read permissions on the published folder.
For details check: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.0

Notify a windows machine within a network, without username and password

The problem statement:
Suppose there are 20 windows machines within a local network. One of the machines serves as the server and hosts the database. Now, the other 19 machines have the access to read from the server machine, but the server machine does not have username and password for any of the other 19 machines.
I have to update a desktop application installed on all the machine. There is a spring-boot application, hosted on the server machine which downloads the build. Now, as soon as I download the build I have to notify all the other 19 machines that build has been downloaded so that they can read and update themselves.
Solution 1: Install a windows service which will poll the server and check if updates are available.
Solution 2: Host a POST web API on the 19 machines and notify them by making a post call. I think installing IIS or Tomcat on every machine is not viable.
Is there any other optimal solution for notifying the client?
Note: We cannot take the RDP and neither have credentials but we can make use of already deployed windows application on the other 19 clients.
Solution 3: If your machines share the same domain, use msi install packages to update software all across domain by using Group Policy. It's common way.
Solution 4: Launch desktop application directly from server shared folder. It works good while server machine is always accessible and application is not too heavy for your LAN.
Here you need some care about writing new application files while it running on client computers. Good way is to keep a different folders for different versions and launch with shortcut pointing to latest one:
v1.3\app files here
v1.4\app files here
v1.4.6\app files here
v1.7\app files here
app.lnk → v1.7\app.exe
client machines launch the application with app.lnk.
Upd: if you update application when nobody works (see 1am…2am), you can omit all of this versioning stuff.
Solution 1: It work as well. You can use NSSM to easily launch your update script or exe-file as a Windows service.
I would use a windows service or a scheduled task (both could be the same application you provide, but with some arguments). It frequently checks if a new version is available (maybe only once a day).
If you only have a short time frame when the new version has to be installed on all machines you could also provide an installation date with the new version. (Maybe the check will be done through a REST api where the client sends the current installed version number and the server answers with an status code 200 and the body is either empty or provides an json object containing the new version number, the due date and the download url.)
Then the client can already download the new version and make it available on the machine, but it triggers the installation only when the due date is reached. This check of the due date can happen more often, cause all informations are already on the client machine and can be done locally.

Glassfish 4.1.1, domain installed as a service does not restart as a service

I got a Glassfish 4.1.1 copy with two domains on Win2012R2 (no clusters, no instances). I've set a windows service for each of those.
Both services run regularly up until the moment when I restart either or both of them thru their admin web console (server (Admin Server) -> Restart). The following happens:
The domain-related service stops, but does not start again,
The allegedly stopped domain is perfectly functional (deployed apps and admin console are there) (!!!),
When I try to start the win service manually, I get Error 1067 (GF reports "something" is already listening on required ports and that's the domain itself that is now, somehow, NOT run as a service!),
I can start the service again only after I've stopped the domain thru server (Admin Server) -> Stop.
Why did I mention two domains? Because this does not happen when I have just one domain with its' service.
Domains do not share ports, only things in common are the JDK/JRE and general GF files.
Is this a bug in Glassfish or did I set something wrong?
This is a limitation, rather than a bug. The problem is that GlassFish has no way to tell whether or not it is running as a service (and, if it is, what the name of that service would be).
The restart command means that GlassFish is restarting itself, so Windows detects that the process it started has been terminated and shows the service as stopped, but GlassFish spawns a new JVM itself. It has no capability to tell Windows to start the service again.
Essentially, the behaviour you are seeing is expected.
After some more testing, I realized what was going on:
Glassfish is definitively capable of restarting its' own Windows service,
The thing that was happening is it takes GF a few seconds do this on its' own,
But, before GF domain could restart as a service, I clicked the URL to return to admin console, every time. That forced it to run as an ordinary executable.
It does seem like the restart happens faster with just one win service, but I won't claim that as an absolute truth without more testing, for which I have no time now.

Could not load the Tomcat server configuration

I edited catalina.properties trying to change the port of the server, it didn't work and restored the original values and now I am getting the following error:
Could not load the Tomcat server configuration at /Servers/VMware
vFabric tc Server Developer Edition v2.9-config. The configuration may
be corrupt or incomplete. Resource is out of sync with the file
system: '/Servers/VMware vFabric tc Server Developer Edition
v2.9-config/catalina.properties'.
This is the default server provided by Spring Tool Suite.
The solutions I found did not help me, like copying all the TOMCAT_DIR/conf files to my server location, which is in workspace/Servers.
Any help?
I am not sure, that my problem is the same, I had similar issue about ports conflict.
My solution was based on changing ports in catalina.properties. I deleted default Pivotal tc Server, than found in installation catalina.properties on the path
sts-bundle/pivotal-tc-server-developer-3.0.0.RELEASE/tcServer/conf.
The last 4 lines in file are:
base.shutdown.port=-1
base.jmx.port=6969
bio.http.port=8080
bio.https.port=8443
Change ports as you like (to have unused ports).
Create a new server. select Pivotal -> Pivotal tc Server... next.
On the next page push radio button Existing Instance and select tcServer. Finish.
Than try to start server to check, if ports are unused yet. If yes, the server should start.
To change a Tomcat port, you need to edit server.xml, not catalina.properties See: link.
Try reinstall/unzip again, and start from scratch. I often mess up servers, and can never work out what happened. It is much faster in the long run to reinstall.
Also, before you do that, try F5 in your IDE, because 'out of sync with file system' usually means you need to press F5 (refresh).

Error while shutting down 'Admin Server' from weblogic enterprise management console

I am using Weblogic Server em console to restart a webserver, URL looks like this:
http://localhost:7001/em/
AdminServer is named 'AdminServer', I wish to restart this server instance,
I click on server in EM console then user menu option like this:
(Weblogic server>Control>Shut Down...) I get this error:
'No Machine associated with server AdminServer. Please associate a machine to this weblogic server using weblogic console first.'
Not able to understand what this means....
What am i missing here?
With Oracle WebLogic, a Machine represents... well, a physical machine (and you can associate Servers i.e. WebLogic instances to it). This is not a fundamental concept except when using Node Managers. In general, you create Machine(s), Server(s) and their association with the configuration wizard at domain creation time.
It is however possible to add a Machine from the console (Environment > Machines > New):
But you can't add a RUNNING Server to a Machine with the console, which will be a problem for the admin Server. So, I'd recommend to use the configuration wizard to extend your existing domain and add Machine(s).
Note that all this will only solve the "shutdown problem", restarting will involve Node Manager which is very likely not configured.

Resources