1"use strict";(self.webpackChunkrabbitmq_website=self.webpackChunkrabbitmq_website||[]).push([["14324"],{70812(e,n,i){i.r(n),i.d(n,{metadata:()=>s,default:()=>u,frontMatter:()=>l,contentTitle:()=>o,toc:()=>d,assets:()=>c});var s=JSON.parse('{"id":"install-windows","title":"Installing on Windows","description":"\x3c!--","source":"@site/versioned_docs/version-4.2/install-windows.md","sourceDirName":".","slug":"/install-windows","permalink":"/docs/4.2/install-windows","draft":false,"unlisted":false,"editUrl":"https://github.com/rabbitmq/rabbitmq-website/tree/main/versioned_docs/version-4.2/install-windows.md","tags":[],"version":"4.2","frontMatter":{"title":"Installing on Windows","displayed_sidebar":"docsSidebar"},"sidebar":"docsSidebar","previous":{"title":"Generic Unix","permalink":"/docs/4.2/install-generic-unix"},"next":{"title":"MacOS using Standalone Binary Build","permalink":"/docs/4.2/install-standalone-mac"}}'),t=i(74848),r=i(28453),a=i(28412);let l={title:"Installing on Windows",displayed_sidebar:"docsSidebar"},o="Installing on Windows",c={},d=[{value:"Overview",id:"overview",level:2},{value:"Using chocolatey",id:"chocolatey",level:2},{value:"Using the Installer",id:"installer",level:2},{value:"Dependencies",id:"dependencies",level:3},{value:"Direct Downloads",id:"downloads",level:3},{value:"Run RabbitMQ Windows Service",id:"service",level:2},{value:"CLI Tools",id:"cli",level:2},{value:"Cookie File Location",id:"cli-cookie-file-location",level:2},{value:"Node Configuration",id:"configure",level:2},{value:"Environment Variable Changes on Windows",id:"environment-variable-changes-on-windows",level:3},{value:"Managing a RabbitMQ Node",id:"managing",level:2},{value:"Managing the Service",id:"managing-service",level:3},{value:"Stopping a Node",id:"stop-service",level:3},{value:"Checking Node Status",id:"status",level:3},{value:"Log Files and Management",id:"server-logs",level:3},{value:"Firewalls and Security Tools",id:"firewall",level:2},{value:"Optional: Install handle.exe for File Handle Monitoring",id:"handle-exe",level:2},{value:"Default User Access",id:"default-user-access",level:2},{value:"Port Access",id:"ports",level:2},{value:"Upgrading Erlang VM",id:"upgrading-erlang",level:2},{value:"Dump File Location When Running as a Service",id:"dump-file",level:2}];function h(e){let n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"installing-on-windows",children:"Installing on Windows"})}),"\n",(0,t.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,t.jsx)(n.p,{children:"This guide covers RabbitMQ installation on Windows. It focuses on the two recommended installation\noptions:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"#chocolatey",children:"Using Chocolatey"})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"#installer",children:"Using the official installer"})," as an administrative user"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"The guide also covers a few post-installation topics in the context of Windows:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The basics of ",(0,t.jsx)(n.a,{href:"#configure",children:"node configuration"})]}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"#cli",children:"CLI tool authentication"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"#service",children:"RabbitMQ Windows Service"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"#managing",children:"Managing the node"})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"#firewall",children:"Firewall and security tools"})," effects"]}),"\n",(0,t.jsxs)(n.li,{children:["File and socket handle monitoring dependency: ",(0,t.jsx)(n.a,{href:"#handle-exe",children:(0,t.jsx)(n.code,{children:"handle.exe"})})]}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"#server-logs",children:"Log file location"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"#default-user-access",children:"Default user limitations"})}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["and more. These topics are covered in more details in the ",(0,t.jsx)(n.a,{href:"/docs/4.2/",children:"rest of documentation guides"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["A separate companion guide covers known ",(0,t.jsx)(n.a,{href:"./windows-configuration",children:"Windows Configuration"}),"\nand ways to mitigate them."]}),"\n",(0,t.jsx)(n.h2,{id:"chocolatey",children:"Using chocolatey"}),"\n",(0,t.jsxs)(n.p,{children:["RabbitMQ packages are ",(0,t.jsx)(n.a,{href:"https://chocolatey.org/packages/rabbitmq",children:"distributed via Chocolatey"}),".\nNew releases can take a while (sometimes weeks) to get through approvals,\nso this option is not guaranteed to provide the latest release.\nIt does, however, manage the required dependencies."]}),"\n",(0,t.jsx)(n.p,{children:"To install RabbitMQ using Chocolatey, run the following command from the command line or from PowerShell:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PowerShell",children:"choco install rabbitmq\n"})}),"\n",(0,t.jsx)(n.p,{children:"For many use cases, Chocolatey is the optimal installation method."}),"\n",(0,t.jsxs)(n.p,{children:["The Chocolatey RabbitMQ package is open source and can be ",(0,t.jsx)(n.a,{href:"https://github.com/rabbitmq/chocolatey-package",children:"found on GitHub"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"installer",children:"Using the Installer"}),"\n",(0,t.jsxs)(n.p,{children:["The official RabbitMQ installer is produced for ",(0,t.jsx)(n.a,{href:"/release-information",children:"every RabbitMQ release"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Compared to ",(0,t.jsx)(n.a,{href:"#chocolatey",children:"installation via Chocolatey"}),", this option gives Windows users\nthe most flexibility but also requires them to be\naware of certain assumptions and requirements in the installer:"]}
1),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"There must be only one Erlang version installed at a time"}),"\n",(0,t.jsxs)(n.li,{children:["Erlang must be installed ",(0,t.jsx)(n.strong,{children:"using an administrative account"})]}),"\n",(0,t.jsxs)(n.li,{children:["It is ",(0,t.jsx)(n.strong,{children:"highly recommended"})," that RabbitMQ is also installed as an administrative account"]}),"\n",(0,t.jsxs)(n.li,{children:["Installation path must only contain ASCII characters. It is ",(0,t.jsx)(n.strong,{children:"highly recommended"})," that the path does not contain spaces in any directory names."]}),"\n",(0,t.jsxs)(n.li,{children:["It may be necessary to manually copy the ",(0,t.jsx)(n.a,{href:"./cli#erlang-cookie",children:"shared secret"})," file used by CLI tools"]}),"\n",(0,t.jsx)(n.li,{children:"CLI tools require Windows console to operate in UTF-8 mode"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"When these conditions are not met, Windows service and CLI tools may require\nreinstallation or other manual steps to get them to function as expected."}),"\n",(0,t.jsxs)(n.p,{children:["This is covered in more detail in the ",(0,t.jsx)(n.a,{href:"./windows-configuration",children:"Windows Configuration"})," guide."]}),"\n",(0,t.jsx)(n.h3,{id:"dependencies",children:"Dependencies"}),"\n",(0,t.jsxs)(n.p,{children:["RabbitMQ requires a 64-bit ",(0,t.jsx)(n.a,{href:"./which-erlang",children:"supported version of Erlang"})," for Windows to be installed."]}),"\n",(0,t.jsxs)(n.p,{children:["Binary builds of recent versions of Erlang for Windows can be obtained from the ",(0,t.jsx)(n.a,{href:"https://erlang.org/download/otp_versions_tree.html",children:"Erlang/OTP Version Tree"})," page."]}),"\n",(0,t.jsxs)(n.p,{children:["Erlang ",(0,t.jsx)(n.strong,{children:"must be installed using an administrative account"})," or it won't be discoverable to the RabbitMQ Windows service.\nOnce a supported version of Erlang is installed, download the RabbitMQ installer, ",(0,t.jsx)(n.code,{children:"rabbitmq-server-{version}.exe"}),"\nand run it. It installs RabbitMQ as a Windows service and starts it using the default configuration."]}),"\n",(0,t.jsx)(n.h3,{id:"downloads",children:"Direct Downloads"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Description"}),(0,t.jsx)(n.th,{children:"Download"}),(0,t.jsx)(n.th,{children:"Signature"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:["Installer for Windows systems (from ",(0,t.jsx)("a",{href:"https://github.com/rabbitmq/rabbitmq-server/releases",children:"GitHub"}),")"]}),(0,t.jsx)(n.td,{children:(0,t.jsx)("a",{href:(0,a.bh)({packageType:"windows-installer"}),children:(0,a.n3)({packageType:"windows-installer"})})}),(0,t.jsx)(n.td,{children:(0,t.jsx)("a",{href:(0,a.ci)({packageType:"windows-installer"}),children:"Signature"})})]})})]}),"\n",(0,t.jsx)(n.h2,{id:"service",children:"Run RabbitMQ Windows Service"}),"\n",(0,t.jsx)(n.p,{children:"Once both Erlang and RabbitMQ have been installed, a RabbitMQ node can be started as a Windows service.\nThe RabbitMQ service starts automatically. RabbitMQ Windows service\ncan be managed from the Start menu."}),"\n",(0,t.jsx)(n.h2,{id:"cli",children:"CLI Tools"}),"\n",(0,t.jsxs)(n.p,{children:["RabbitMQ nodes are often managed, inspected and operated using ",(0,t.jsx)(n.a,{href:"./cli",children:"CLI Tools"}),"\nin ",(0,t.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/PowerShell",children:"PowerShell"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["On Windows, CLI tools have a ",(0,t.jsx)(n.code,{children:".bat"})," suffix compared to other platforms. For example,\n",(0,t.jsx)(n.code,{children:"rabbitmqctl"})," on Windows is invoked as ",(0,t.jsx)(n.code,{children:"rabbitmqctl.bat"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["In order for these tools to work they must be able to ",(0,t.jsx)(n.a,{href:"./cli#erlang-cookie",children:"authenticate with RabbitMQ nodes"}),"\nusing a shared secret file called the Erlang cookie."]}),"\n",(0,t.jsxs)(n.p,{children:["The main ",(0,t.jsx)(n.a,{href:"./cli",children:"CLI tools guide"})," covers most topics related to command line tool usage."]}),"\n",(0,t.jsxs)(n.p,{children:["In order to explore what commands various RabbitMQ CLI tools provide, use the ",(0,t.jsx)(n.code,{children:"help"})," command:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PowerShell",children:"# lists commands provided by rabbitmqctl.bat\nrabbitmqctl.bat help\n\n# lists commands provided by rabbitmq-diagnostics.bat\nrabbitmq-diagnostics.bat help\n\n# ...you guessed it!\nrabbitmq-plugins.bat help\n"})}),"\n",(0,t.jsxs)(n.p,{children:["To learn about a specific command, pass its name as an argument to ",(0,t.jsx)(n.code,{children:"help"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PowerShell",children:"rabbitmqctl.bat help add_user\n"})}),"\n",(0,t.jsx)(n.h2,{id:"cli-cookie-file-location",children:"Cookie File Location"}),"\n",(0,t.jsxs)(n.p,{children:["On Windows, the ",(0,t.jsx)(n.a,{href:"./cli#cookie-file-locations",children:"cookie file location"})," depends on\nwhether the ",(0,t.jsx)(n.code,{children:"HOMEDRIVE"})," and ",(0,t.jsx)(n.code,{children:"HOMEPATH"})," environment variables are set."]}),"\n",(0,t.jsxs)(n.p,{children:["If RabbitMQ is installed using a non-administrative account, a ",(0,t.jsx)(n.a,{href:"./cli#erlang-cookie",children:"shared secret"})," file\nused by nodes and CLI tools will not be placed into a correct location,\nleading to ",(0,t.jsx)(n.a,{href:"./cli#cli-authentication-failures",children:"authentication failures"})," when ",(0,t.jsx)(n.code,{children:"rabbitmqctl.bat"}),"\nand other CLI tools are used."]}),"\n",(0,t.jsx)(n.p,{children:"One of these options can be used to mitigate:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Re-install RabbitMQ using an administrative user"}),"\n",(0,t.jsxs)(n.li,{children:["Copy the file ",(0,t.jsx)(n.code,{children:".erlang.cookie"})," manually from ",(0,t.jsx)(n.code,{children:"%SystemRoot%"})," or ",(0,t.jsx)(n.code,{children:"%SystemRoot%\\system32\\config\\systemprofile"}),"\nto ",(0,t.jsx)(n.code,{children:"%HOMEDRIVE%%HOMEPATH%"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"configure",children:"Node Configuration"}),"\n",(0,t.jsxs)(n.p,{children:["The service starts using its default ",(0,t.jsx)(n.a,{href:"./configure",children:"settings"}),", listening\nfor connections on ",(0,t.jsx)(n.a,{href:"./networking#interfaces",children:"default interfaces"})," and ",(0,t.jsx)(n.a,{href:"#ports",children:"ports"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Node configuration is primarily done using a ",(0,t.jsx)(n.a,{href:"./configure#configuration-files",children:"configuration file"}),".\nA number of available ",(0,t.jsx)(n.a,{href:"./configure#rabbitmq-env-file-windows",children:"environment variables"})," can be used\nto control node's ",(0,t.jsx)(n.a,{href:"./relocate",children:"data location"}),", configuration file path and so on."]}),"\n",(0,t.jsxs)(n.p,{children:["This is covered in more detail in the ",(0,t.jsx)(n.a,{href:"./configure",children:"Configuration guide"})]}),"\n",(0,t.jsx)(n.h3,{id:"environment-variable-changes-on-windows",children:"Environment Variable Changes on Windows"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Important"}),": after setting environment variables, it is necessary to ",(0,t.jsxs)(n.a,{href:"./configure#rabbitmq-env-file-windows",children:[(0,t.jsx)(n.strong,{children:"re-install"})," the Windows service"]}),". Restarting the service will not be sufficient."]}),"\n",(0,t.jsx)(n.h2,{id:"managing",children:"Managing a RabbitMQ Node"}),"\n",(0,t.jsx)(n.h3,{id:"managing-service",children:"Managing the Service"}),"\n",(0,t.jsx)(n.p,{children:"Links to RabbitMQ directories can be found in the Start Menu."}),"\n",(0,t.jsxs)(n.p,{children:["There is also a link to a command prompt window that\nwill start in the sbin dir, in the Start Menu. This is\nthe most convenient way to run the ",(0,t.jsx)(n.a,{href:"#cli",children:"command line tools"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Note that CLI tools will have to ",(0,t.jsx)(n.a,{href:"#cli",children:"authenticate to the target RabbitMQ node"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"stop-service",children:"Stopping a Node"}),"\n",(0,t.jsxs)(n.p,{children:["To stop the broker or check its status, use\n",(0,t.jsx)(n.code,{children:"rabbitmqctl.bat"})," in ",(0,t.jsx)(n.code,{children:"sbin"})," (as an administrator)."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PowerShell",children:"rabbitmqctl.bat stop\n"})}),"\n",(0,t.jsx)(n.h3,{id:"status",children:"Checking Node Status"}),"\n",(0,t.jsxs)(n.p,{children:["The following ",(0,t.jsx)(n.a,{href:"#cli",children:"CLI command"})," runs a basic ",(0,t.jsx)(n.a,{href:"./monitoring#health-checks",children:"health check"}),"\nand displays some information about the node if it is running."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-PowerShell",children:"# A basic health check of both the node and CLI tool connectivity/authentication\nrabbitmqctl.bat status\n"})}),"\n",(0,t.jsx)(n.p,{children:"For it to work,\ntwo conditions must be true:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"The node must be running"}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"rabbitmqctl.bat"})," must be able to authenticate with the node"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["See the ",(0,t.jsx)(n.a,{href:"#cli",children:"CLI tools section"})," and the ",(0,t.jsx)(n.a,{href:"./monitoring",children:"Monitoring and Health Checks guide"}),"\nto learn more."]}),"\n",(0,t.jsx)(n.h3,{id:"server-logs",children:"Log Files and Management"}),"\n",(0,t.jsxs)(n.p,{children:["Server logs are critically important in troubleshooting and root cause analysis.\nSee ",(0,t.jsx)(n.a,{href:"./logging",children:"Logging"})," and ",(0,t.jsx)(n.a,{href:"./relocate",children:"File and Directory Location"})," guides\nto learn about log file location, log rotation and more."]}),"\n",(0,t.jsx)(n.h2,{id:"firewall",children:"Firewalls and Security Tools"}),"\n",(0,t.jsx)(n.p,{children:"Firewalls and security tools can prevent RabbitMQ Windows service and CLI tools from operating\ncorrectly."}),"\n",(0,t.jsxs)(n.p,{children:["Such tools should be configured to whitelist access to ",(0,t.jsx)(n.a,{href:"#ports",children:"ports used by RabbitMQ"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"handle-exe",children:"Optional: Install handle.exe for File Handle Monitoring"}),"\n",(0,t.jsxs)(n.p,{children:["One of the ",(0,t.jsx)(n.a,{href:"./monitoring",children:"metrics"})," RabbitMQ nodes collect and provide is the number of\nfile and socket handles used by the node."]}),"\n",(0,t.jsxs)(n.p,{children:["On Windows, these metrics are collected from an external
1command line tool,\n",(0,t.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/sysinternals/downloads/handle",children:(0,t.jsx)(n.code,{children:"handle.exe"})}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Version 5 is required on Windows Server 2025, and is highly recommended in most cases."}),"\n",(0,t.jsx)(n.h2,{id:"default-user-access",children:"Default User Access"}),"\n",(0,t.jsxs)(n.p,{children:["The broker creates a user ",(0,t.jsx)(n.code,{children:"guest"})," with password\n",(0,t.jsx)(n.code,{children:"guest"}),". Unconfigured clients will in general use these\ncredentials. ",(0,t.jsx)(n.strong,{children:"By default, these credentials can only be\nused when connecting to the broker as localhost"})," so you\nwill need to take action before connecting from any other\nmachine."]}),"\n",(0,t.jsxs)(n.p,{children:["See the documentation on ",(0,t.jsx)(n.a,{href:"./access-control",children:"access control"})," for information on how to create more users and delete\nthe ",(0,t.jsx)(n.code,{children:"guest"})," user."]}),"\n",(0,t.jsx)(n.h2,{id:"ports",children:"Port Access"}),"\n",(0,t.jsx)(n.p,{children:"RabbitMQ nodes bind to ports (open server TCP sockets) in order to accept client and CLI tool connections.\nOther processes and tools such as anti-virus software may prevent RabbitMQ from binding to a port. When that happens,\nthe node will fail to start."}),"\n",(0,t.jsx)(n.p,{children:"CLI tools, client libraries and RabbitMQ nodes also open connections (client TCP sockets).\nFirewalls can prevent nodes and CLI tools from communicating with each other.\nMake sure the following ports are accessible:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["4369: ",(0,t.jsx)(n.a,{href:"http://erlang.org/doc/man/epmd.html",children:"epmd"}),", a peer discovery service used by RabbitMQ nodes and CLI tools"]}),"\n",(0,t.jsx)(n.li,{children:"5672, 5671: used by AMQP 0-9-1 and 1.0 clients without and with TLS"}),"\n",(0,t.jsxs)(n.li,{children:["25672: used for inter-node and CLI tools communication (Erlang distribution server port)\nand is allocated from a dynamic range (limited to a single port by default,\ncomputed as AMQP port + 20000). Unless external connections on these ports are really necessary (e.g.\nthe cluster uses ",(0,t.jsx)(n.a,{href:"./federation",children:"federation"})," or CLI tools are used on machines outside the subnet),\nthese ports should not be publicly exposed. See ",(0,t.jsx)(n.a,{href:"./networking",children:"networking guide"})," for details."]}),"\n",(0,t.jsxs)(n.li,{children:["35672-35682: used by CLI tools (Erlang distribution client ports) for communication with nodes\nand is allocated from a dynamic range (computed as server distribution port + 10000 through\nserver distribution port + 10010). See ",(0,t.jsx)(n.a,{href:"./networking",children:"networking guide"})," for details."]}),"\n",(0,t.jsxs)(n.li,{children:["15672: ",(0,t.jsx)(n.a,{href:"./management",children:"HTTP API"})," clients, ",(0,t.jsx)(n.a,{href:"./management",children:"management UI"})," and ",(0,t.jsx)(n.a,{href:"./management-cli",children:"rabbitmqadmin"}),"\n(only if the ",(0,t.jsx)(n.a,{href:"./management",children:"management plugin"})," is enabled)"]}),"\n",(0,t.jsxs)(n.li,{children:["61613, 61614: ",(0,t.jsx)(n.a,{href:"https://stomp.github.io/stomp-specification-1.2.html",children:"STOMP clients"})," without and with TLS (only if the ",(0,t.jsx)(n.a,{href:"./stomp",children:"STOMP plugin"})," is enabled)"]}),"\n",(0,t.jsxs)(n.li,{children:["1883, 8883: ",(0,t.jsx)(n.a,{href:"http://mqtt.org/",children:"MQTT clients"})," without and with TLS, if the ",(0,t.jsx)(n.a,{href:"./mqtt",children:"MQTT plugin"})," is enabled"]}),"\n",(0,t.jsxs)(n.li,{children:["15674: STOMP-over-WebSockets clients (only if the ",(0,t.jsx)(n.a,{href:"./web-stomp",children:"Web STOMP plugin"})," is enabled)"]}),"\n",(0,t.jsxs)(n.li,{children:["15675: MQTT-over-WebSockets clients (only if the ",(0,t.jsx)(n.a,{href:"./web-mqtt",children:"Web MQTT plugin"})," is enabled)"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["It is possible to ",(0,t.jsx)(n.a,{href:"./configure",children:"configure RabbitMQ"}),"\nto use ",(0,t.jsx)(n.a,{href:"./networking",children:"different ports and specific network interfaces"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"upgrading-erlang",children:"Upgrading Erlang VM"}),"\n",(0,t.jsx)(n.p,{children:"If you have an existing installation and are planning to upgrade\nthe Erlang VM from a 32-bit to a 64-bit version then you must uninstall\nthe broker before upgrading the VM. The installer will not be able to stop\nor remove a service that was installed with an Erlang VM of a different\narchitecture."}),"\n",(0,t.jsx)(n.h2,{id:"dump-file",children:"Dump File Location When Running as a Service"}),"\n",(0,t.jsxs)(n.p,{children:["In the event that the Erlang VM terminates when RabbitMQ is running\nas a service, rather than writing the crash dump to the current\ndirectory (which doesn't make sense for a service) it is written\nto an ",(0,t.jsx)(n.code,{children:"erl_crash.dump"})," file in the ",(0,t.jsx)(n.a,{href:"./relocate",children:"base directory"})," of\nthe RabbitMQ server, defaulting to ",(0,t.jsx)(n.code,{children:"%APPDATA%\\%RABBITMQ_SERVICENAME%"})," - typically ",(0,t.jsx)(n.code,{children:"%APPDATA%\\RabbitMQ"})," otherwise."]})]})}function u(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},28412(e,n,i){i.d(n,{AR:()=>c,EF:()=>d,TJ:()=>
1o,VK:()=>m,bh:()=>h,ci:()=>u,lx:()=>b,n3:()=>p,ue:()=>f}),i(96540);var s=i(83384),t=i(80698);function r({branch:e}={branch:void 0}){return void 0===e&&(e=(0,t.ir)().label),e}function a(e){let n=r(e);return(0,s.CA)(n)}function l(e){let n=r(e),i=(0,s.Z0)(n);if(void 0===i)return;let{packageType:t}=e;return"package_revs"in i&&t in i.package_revs?i.package_revs[t]:"1"}function o(e={}){return r(e)}function c(e={}){return a(e)||"<unreleased>"}function d(e={}){let n=a(e);return void 0===n?"<unreleased>":`v${n}`}function h(e){let{packageType:n}=e,i=a(e);if(void 0===i)return"#";let s=d(),t=`https://github.com/rabbitmq/rabbitmq-server/releases/download/${s}`;switch(n){case"debian":let r=l(n);return`${t}/rabbitmq-server_${i.replaceAll("-",".")}-${r}_all.deb`;case"rpm-el8":let o=l(n);return`${t}/rabbitmq-server-${i.replaceAll("-",".")}-${o}.el8.noarch.rpm`;case"rpm-suse":let c=l(n);return`${t}/rabbitmq-server-${i.replaceAll("-",".")}-${c}.suse.noarch.rpm`;case"generic-unix":return`${t}/rabbitmq-server-generic-unix-${i}.tar.xz`;case"windows-installer":return`${t}/rabbitmq-server-${i}.exe`;case"windows-zip":return`${t}/rabbitmq-server-windows-${i}.zip`;default:throw Error(`Unknown RabbitMQ server package type ${package_type}`)}}function u(e){let n=h(e);return"#"!=n?`${n}.asc`:n}function m(e){let{packageType:n}=e;switch(n){case"debian":case"rpm-el8":case"rpm-suse":return l(n);default:throw Error(`No package revision for package type ${package_type}`)}}function p(e){let n=h(e);return"#"!=n?n.split("/").reverse()[0]:"<unreleased>"}function b(e={}){let n=a(e);return void 0===n?"<unreleased>":`rabbitmq_${n}`}function f(e={}){return b(e)}},83384(e,n,i){i.d(n,{Z0:()=>v,Az:()=>j,J3:()=>y,CA:()=>w});var s,t,r,a,l,o,c=i(74848),d=i(96540),h=i(10898),u=i(80698);function m(){return(m=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var i=arguments[n];for(var s in i)({}).hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e}).apply(null,arguments)}let p=({title:e,titleId:n,...i})=>d.createElement("svg",m({width:6,height:12,viewBox:"0 0 1.5875 3.175",id:"svg1",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),e?d.createElement("title",{id:n},e):null,s||(s=d.createElement("defs",{id:"defs1"})),t||(t=d.createElement("g",{id:"layer1",transform:"translate(-43.445422,-75.511109)"},d.createElement("path",{d:"m 43.445422,75.511109 v 3.175 l 1.5875,-1.5875 z",id:"path1",fill:"#000000",fillOpacity:1,stroke:"none",strokeWidth:"0.0214907px",strokeLinecap:"butt",strokeLinejoin:"miter",strokeOpacity:1}))));function b(){return(b=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var i=arguments[n];for(var s in i)({}).hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e}).apply(null,arguments)}let f=({title:e,titleId:n,...i})=>d.createElement("svg",b({width:740,height:740,viewBox:"0 0 22.2 22.2",id:"svg1",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),e?d.createElement("title",{id:n},e):null,r||(r=d.createElement("defs",{id:"defs1"})),a||(a=d.createElement("path",{d:"m 11.1,3.9157895 v 1.580518 H 2.7331443 V 20.019638 l 14.5231687,-1.6e-5 v -8.367004 l 1.580528,1.4e-5 v 8.36699 c 0,0.944268 -0.6712,1.580378 -1.580528,1.580378 H 2.7331443 C 1.8914216,21.6 1.1526319,20.879784 1.1526319,20.019622 V 5.4963075 c 0,-0.7831956 0.7534712,-1.580518 1.5805124,-1.580518 z m 0,11.7426205 v 1.520537 H 5.5736844 V 15.65841 Z m 3.315789,-3.31578 v 1.520528 H 5.5736844 V 12.34263 Z m 0,-3.31578 v 1.520518 H 5.5736844 V 9.02685 Z M 17.731578,2.8105264 18.767762,5.0901316 21.047368,6.1263158 18.767762,7.1625 17.731578,9.4421053 16.695394,7.1625 14.415789,6.1263158 16.695394,5.0901316 Z M 14.41579,0.6 15.10658,2.1197369 16.626316,2.8105264 15.10658,3.5013158 14.41579,5.0210527 13.725,3.5013158 12.205263,2.8105264 13.725,2.1197369 Z",id:"path1",strokeWidth:.75,strokeDasharray:"none",fillOpacity:1})));function g(){return(g=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var i=arguments[n];for(var s in i)({}).hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e}).apply(null,arguments)}let x=({title:e,titleId:n,...i})=>d.createElement("svg",g({fill:"#000000",width:740,height:740,viewBox:"0 0 29.6 29.6",enableBackgroun
1d:"new 0 0 32 32",id:"Layer_3",xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),e?d.createElement("title",{id:n},e):null,l||(l=d.createElement("defs",{id:"defs4"})),o||(o=d.createElement("g",{id:"g4",transform:"translate(-1.2,-1.1996259)"},d.createElement("path",{d:"m 5.063,19.369 0.521,4.602 c 0.007,0.067 0.021,0.133 0.042,0.197 0.412,1.266 1.591,2.072 2.855,2.072 0.308,0 0.619,-0.048 0.927,-0.148 1.572,-0.512 2.436,-2.208 1.924,-3.781 l -0.83,-2.551 h 0.261 l 7.789,3.895 c 0.142,0.07 0.294,0.105 0.447,0.105 0.183,0 0.365,-0.05 0.525,-0.149 C 19.82,23.429 20,23.107 20,22.76 v -4.142 c 1.721,-0.447 3,-2 3,-3.858 0,-1.858 -1.279,-3.411 -3,-3.858 V 6.76 C 20,6.413 19.82,6.092 19.525,5.909 19.23,5.726 18.862,5.71 18.552,5.865 L 10.764,9.76 H 7 c -2.757,0 -5,2.243 -5,5 0,2.071 1.265,3.851 3.063,4.609 z M 9.43,22.93 C 9.601,23.454 9.314,24.019 8.789,24.19 8.29,24.353 7.757,24.101 7.558,23.628 L 7.119,19.76 H 8.398 Z M 21,14.76 c 0,0.737 -0.405,1.375 -1,1.722 v -3.443 c 0.595,0.346 1,0.984 1,1.721 z m -3,6.382 -6,-3 v -6.764 l 6,-3 z M 7,11.76 h 3 v 6 H 7 c -1.654,0 -3,-1.346 -3,-3 0,-1.654 1.346,-3 3,-3 z",id:"path1"}),d.createElement("path",{d:"m 27,15.76 h 2 c 0.553,0 1,-0.448 1,-1 0,-0.552 -0.447,-1 -1,-1 h -2 c -0.553,0 -1,0.448 -1,1 0,0.552 0.447,1 1,1 z",id:"path2"}),d.createElement("path",{d:"m 27,10.467 c 0.256,0 0.512,-0.098 0.707,-0.293 L 29.121,8.76 c 0.391,-0.391 0.391,-1.023 0,-1.414 -0.391,-0.391 -1.023,-0.391 -1.414,0 L 26.293,8.76 c -0.391,0.391 -0.391,1.023 0,1.414 0.195,0.196 0.451,0.293 0.707,0.293 z",id:"path3"}),d.createElement("path",{d:"m 27.707,22.174 c 0.195,0.195 0.451,0.293 0.707,0.293 0.256,0 0.512,-0.098 0.707,-0.293 0.391,-0.391 0.391,-1.023 0,-1.414 l -1.414,-1.414 c -0.391,-0.391 -1.023,-0.391 -1.414,0 -0.391,0.391 -0.391,1.023 0,1.414 z",id:"path4"}))));function j(){let{siteConfig:{customFields:{releaseBranches:{rabbitmq:e}}}}=(0,h.default)();return e}function v(e){let n=j()[e]||{};if(void 0!==n.releases)return n.releases[0]||void 0}function w(e){let n=v(e);if(void 0!==n)return n.version}function y(){let e=j(),n=(0,u.jh)(),i=Date.now(),s={year:"numeric",month:"short",day:"numeric",timeZone:"UTC"};var t=!1;let[r,a]=(0,d.useState)(void 0);var l=[];for(let d in e){let u=n.find(e=>e.name===d),j=e[d],C=j.releases||[],T=void 0!==j.end_of_support;var o=!0;for(let e in t=!!T&&void 0===h,C){let n=C[e],S=r===d?"show-release":"hide-release";var h,m,b,g,v,w,y="";(t?y="latest-release":T||(y="future-release"),T)?(m=[{type:"relnotes",url:`https://github.com/rabbitmq/rabbitmq-server/releases/tag/v${n.version}`}],n.links&&(m=m.concat(n.links)),m=(0,c.jsx)("ul",{children:m.map(function(e){switch(e.type){case"relnotes":return(0,c.jsx)("li",{children:(0,c.jsxs)("a",{href:e.url,className:`release-link release-link-${e.type}`,children:[(0,c.jsx)(f,{title:"Release Notes"}),(0,c.jsx)("span",{children:"Release Notes"})]})});case"announcement":return(0,c.jsx)("li",{children:(0,c.jsxs)("a",{href:e.url,className:`release-link release-link-${e.type}`,children:[(0,c.jsx)(x,{title:"Announcement"}),(0,c.jsx)("span",{children:"Announcement"})]})})}})})):m=(0,c.jsx)(c.Fragment,{}),b=T?(b=new Date(n.release_date)).toLocaleDateString("en-GB",s):"-";var k="-";let R="-";var M=!1;let I=!1;if(j.end_of_support){if(j.end_of_community_support)k=new Date(j.end_of_community_support);else if(h){let e=h.releases,n=new Date(e[e.length-1].release_date);k=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+1,0))}else M=!0,k=(0,c.jsx)("abbr",{title:"Supported until the next major or minor release branch is published.",children:"Next release"});R=new Date(j.end_of_support)}{let e=k;e instanceof Date?(g=e>i?"supported-release":"unsupported-release",v=e.toLocaleDateString("en-GB",s)):(g=M?"supported-release":"unsupported-release",v=e),k=(0,c.jsx)("div",{className:["release-eos release-eos-community",g,y,o?"":S].join(" "),children:v})}R instanceof Date&&(I=R>i,R=R.toLocaleDateString("en-GB",s)),o&&(w=u?u.label:d,l.push((0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("div",{className:["release-toggle",y,S].join(" "),onClick:e=>{a(r===d?void 0:d)},children:(0,c.jsx)(p,{})}),(0,c.jsx)("div",{className:["release-branch",y,o?"":S].join(" "),children:w})]}))),l.push((0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("div",{className:["release-version",y,o?"":S].join(" "),children:n.version||"-"}),(0,c.jsx)("div",{className:["release-links",y,o?"":S].join(" "),children:m}),(0,c.jsx)("div",{className:["release-reldate",y,o?"":S].join(" "),children:b}),k,(0,c.jsx)("div",{className:["release-eos release-eos-commercial",I?"supported-release latest-release":"unsupported-release",o?"":S].join(" "),children:R})]})),o=!1}T&&(h=j)}return(0,c.jsxs)("div",{className:"release-information",children:[(0,c.jsx)("div",{className:"release-info-overflow",children:(0,c.jsxs)("div",{className:"release-info-grid",children:[(0,c.jsx)("div",{className:"release-info-header release-branch",children:"Release"}),(0,c.jsx)("div",{className:"release-info-header release-version",children:"Patch and associated docs"}),(0,c.jsx)("div",{className:"release-info-header release-reldate",children:"Date of Release"}),(0,c.jsx)("div",{className:"release-info-header release-eos release-eos-community",children:"End of Community Supp
1ort"}),(0,c.jsx)("div",{className:"release-info-header release-eos release-eos-commercial",children:"End of Commercial Support*"}),l]})}),(0,c.jsx)("strong",{children:"Legend:"}),(0,c.jsxs)("dl",{className:"release-legend",children:[(0,c.jsx)("dt",{className:"supported-release latest-release"}),(0,c.jsx)("dd",{children:"Latest release series, fully supported"}),(0,c.jsx)("dt",{className:"unsupported-release"}),(0,c.jsx)("dd",{children:"Older release series, unsupported"}),void 0!==e.current.releases&&e.current.releases.length>0?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("dt",{className:"unsupported-release future-release"}),(0,c.jsx)("dd",{children:"Future version, unsupported"})]}):(0,c.jsx)(c.Fragment,{})]})]})}},28453(e,n,i){i.d(n,{R:()=>a,x:()=>l});var s=i(96540);let t={},r=s.createContext(t);function a(e){let n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.