activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chirag Pujara <chiragpuj...@gmail.com>
Subject Re: ActiveMq instance creation and running them
Date Wed, 24 Jul 2013 03:22:23 GMT
Yup I tried "$*@*" but no luck. Actually it stated to give me other errors
bcs it was getting wrong value for $COMMAND_ARGS in
${ACTIVEMQ_HOME}/bin/activemq script.

But then I found this link:
http://en.wikibooks.org/wiki/Bash_Shell_Scripting

and I tried "$@" and it is working.

is there a way to create script with "$@" instead "$*"?

thanks for help and pointing me right direction.
-chirag


On Tue, Jul 23, 2013 at 8:17 PM, Christian Posta
<christian.posta@gmail.com>wrote:

> So I tried and recreated what you see, but it worked when I changed the
> last line to
>
> ${ACTIVEMQ_HOME}/bin/activemq "$*@*"
>
> In the quoted section of your reply, it looked like it got changed to
>  ${ACTIVEMQ_HOME}/bin/activemq "$*@*"
>
> with stars surrounding the '@' sign... so what did you change to?
>
>
>
>
> On Tue, Jul 23, 2013 at 4:14 PM, Chirag Pujara <chiragpujara@gmail.com
> >wrote:
>
> > if I tried to start instance without any argument it works fine.
> >
> > i.e:  /opt/gwx/apache-activemq-5.8.0/activemq_8100/bin/activemq_8100
> start
> >
> > but if use command "
> > /opt/gwx/apache-activemq-5.8.0/activemq_8100/bin/activemq_8100 start
> > -Dactivemq.data=/opt/gwx/activemqdata -DopenwirePort=61616
> -DamqpPort=5604"
> > it starts in debug/console mode.
> >
> > I am using -D option to run instance on different port.
> >
> > do I need to make any changes in any of the script so that it doesnt do
> it
> > or am I missing anystep.
> >
> > Do I need to do '$ACTIVEMQ_BASE/bin/activemq setup
> > ~/.activemqrc-instance-activemq_8100' ? what does it do? whats use of it?
> >
> > thanks,
> > chirag
> >
> >
> > On Tue, Jul 23, 2013 at 9:00 AM, Chirag Pujara <chiragpujara@gmail.com
> > >wrote:
> >
> > > Did you create that script using '$ACTIVEMQ_BASE/bin/activemq create'
> > > command?
> > >
> > > Ans: Yes.
> > >
> > > I tried what you said. No Luck.
> > >
> > >
> > > On Mon, Jul 22, 2013 at 5:53 PM, Christian Posta <
> > > christian.posta@gmail.com> wrote:
> > >
> > >> Did you create that script using '$ACTIVEMQ_BASE/bin/activemq create'
> > >> command?
> > >>
> > >> Looks like it will work properly if you change the last statement to
> > >>
> > >> ${ACTIVEMQ_HOME}/bin/activemq "$*@*"
> > >>
> > >>
> > >> On Mon, Jul 22, 2013 at 6:47 PM, Christian Posta
> > >> <christian.posta@gmail.com>wrote:
> > >>
> > >> > what happens when you use the activemq script directly?
> > >> >
> > >> >
> > >> > On Mon, Jul 22, 2013 at 5:09 PM, Chirag Pujara <
> > chiragpujara@gmail.com
> > >> >wrote:
> > >> >
> > >> >> sorry msg got sent in middle of typing:
> > >> >>
> > >> >> Hello,
> > >> >>
> > >> >> I have created 3 instance for activemq. activemq_8100,
> activemq_8200,
> > >> >> activemq_8300.
> > >> >>
> > >> >> when I execute follwoing command:
> > >> >>
> > >> >> /opt/gwx/apache-activemq-5.8.0/activemq_8100/bin/activemq_8100
> start
> > >> >> -Dactivemq.data=/opt/gwx/activemqdata -DopenwirePort=61616
> > >> -DamqpPort=5600
> > >> >> -DrmiPort=8100
> > >> >>
> > >> >> it starts activemq as console and not as background process. did
I
> > miss
> > >> >> something?
> > >> >>
> > >> >> Here is what my config looks like:
> > >> >>
> > >> >> <?xml version="1.0" encoding="UTF-8"?><beans xmlns="
> > >> >> http://www.springframework.org/schema/beans" xmlns:amq="
> > >> >> http://activemq.apache.org/schema/core" xmlns:xsi="
> > >> >> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> > >> >> http://www.springframework.org/schema/beans
> > >> >> http://www.springframework.org/schema/beans/spring-beans.xsd
> > >> >> http://activemq.apache.org/schema/core
> > >> >> http://activemq.apache.org/schema/core/activemq-core.xsd"
> > >> >> >
> > >> >>
> > >> >>     <!-- Allows us to use system properties as variables in
this
> > >> >> configuration file -->
> > >> >>     <bean
> > >> >>
> > >> >>
> > >>
> >
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> > >> >>         <property name="locations">
> > >> >>
> > <value>file:${activemq.conf}/credentials.properties</value>
> > >> >>         </property>
> > >> >>     </bean>
> > >> >>
> > >> >>     <!--
> > >> >>         The <broker> element is used to configure the ActiveMQ
> > broker.
> > >> >>     -->
> > >> >>     <broker xmlns="http://activemq.apache.org/schema/core"
> > >> >> brokerName="activemq_8100" dataDirectory="${activemq.data}">
> > >> >>
> > >> >>
> > >> >>         <destinationPolicy>
> > >> >>             <policyMap>
> > >> >>               <policyEntries>
> > >> >>
> > >> >>                 <policyEntry producerFlowControl="true"
> topic="&gt;">
> > >> >>                   <pendingMessageLimitStrategy>
> > >> >>                     <constantPendingMessageLimitStrategy
> > limit="1000"/>
> > >> >>                   </pendingMessageLimitStrategy>
> > >> >>                 </policyEntry>
> > >> >>                <policyEntry memoryLimit="1mb"
> > >> producerFlowControl="true"
> > >> >> queue="&gt;">
> > >> >>
> > >> >>                 </policyEntry>
> > >> >>               </policyEntries>
> > >> >>             </policyMap>
> > >> >>         </destinationPolicy>
> > >> >>
> > >> >>  <managementContext>
> > >> >>             <managementContext createConnector="false"/>
> > >> >>         </managementContext>
> > >> >>
> > >> >> <persistenceAdapter>
> > >> >>             <kahaDB directory="${activemq.data}/kahadb"/>
> > >> >>         </persistenceAdapter>
> > >> >>
> > >> >> <systemUsage>
> > >> >>             <systemUsage>
> > >> >>                 <memoryUsage>
> > >> >>                     <memoryUsage limit="64 mb"/>
> > >> >>                 </memoryUsage>
> > >> >>                 <storeUsage>
> > >> >>                     <storeUsage limit="100 gb"/>
> > >> >>                 </storeUsage>
> > >> >>                 <tempUsage>
> > >> >>                     <tempUsage limit="50 gb"/>
> > >> >>                 </tempUsage>
> > >> >>             </systemUsage>
> > >> >>         </systemUsage>
> > >> >>
> > >> >>
> > >> >>  <transportConnectors>
> > >> >>             <!-- DOS protection, limit concurrent connections
to
> 1000
> > >> and
> > >> >> frame size to 100MB -->
> > >> >>             <transportConnector name="openwire" uri="tcp://0.0.0.0
> :
> > >> >>
> > >> >>
> > >>
> >
> ${openwirePort}?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>
> > >> >>             <transportConnector name="amqp" uri="amqp://0.0.0.0:
> > >> >>
> > >> >>
> > >>
> >
> ${amqpPort}?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>
> > >> >>         </transportConnectors>
> > >> >>
> > >> >>         <!-- destroy the spring context on shutdown to stop
jetty
> -->
> > >> >>         <shutdownHooks>
> > >> >>             <bean xmlns="
> http://www.springframework.org/schema/beans
> > "
> > >> >> class="org.apache.activemq.hooks.SpringContextHook"/>
> > >> >>         </shutdownHooks>
> > >> >>
> > >> >>     </broker>
> > >> >>
> > >> >> </beans>
> > >> >>
> > >> >>
> > >> >> Here is what my activemq_8100 looks like:
> > >> >>
> > >> >>
> > >> >> ## Figure out the ACTIVEMQ_BASE from the directory this script
was
> > run
> > >> >> from
> > >> >> PRG="$0"
> > >> >> progname=`basename "$0"`
> > >> >> saveddir=`pwd`
> > >> >> # need this for relative symlinks
> > >> >> dirname_prg=`dirname "$PRG"`
> > >> >> cd "$dirname_prg"
> > >> >> while [ -h "$PRG" ] ; do
> > >> >>   ls=`ls -ld "$PRG"`
> > >> >>   link=`expr "$ls" : '.*-> \(.*\)$'`
> > >> >>   if expr "$link" : '.*/.*' > /dev/null; then
> > >> >>     PRG="$link"
> > >> >>   else
> > >> >>     PRG=`dirname "$PRG"`"/$link"
> > >> >>   fi
> > >> >> done
> > >> >> ACTIVEMQ_BASE=`dirname "$PRG"`/..
> > >> >> cd "$saveddir"
> > >> >>
> > >> >> ACTIVEMQ_BASE=`cd "$ACTIVEMQ_BASE" && pwd`
> > >> >>
> > >> >> ## Add system properties for this instance here (if needed), e.g
> > >> >> #export ACTIVEMQ_OPTS_MEMORY="-Xms256M -Xmx1G"
> > >> >> #export ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY
> > >> >> -Dorg.apache.activemq.UseDedicatedTaskRunner=true
> > >> >> -Djava.util.logging.config.file=logging.properties"
> > >> >>
> > >> >>
> > >> >> echo "rmiPort:"$rmiPort
> > >> >> export
> > >> >>
> > >>
> >
> ACTIVEMQ_SUNJMX_CONTROL="-Dactivemq.jmx.url=service:jmx:rmi:///jndi/rmi://
> > >> >> 127.0.0.1:8100/jmxrmi"
> > >> >> #
> > >> >> ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=8100
"
> > >> >> ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
> > >> >>
> > >> >>
> > >>
> >
> -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_BASE}/conf/jmx.password"
> > >> >> ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
> > >> >>
> > >> >>
> > >>
> >
> -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access"
> > >> >> ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
> > >> >> -Dcom.sun.management.jmxremote.ssl=false"
> > >> >> ##ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
> > >> >> -Dcom.sun.management.jmxremote"
> > >> >> #
> > >> >> export ACTIVEMQ_SUNJMX_START=$ACTIVEMQ_SUNJMX_START
> > >> >> #
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >> export ACTIVEMQ_HOME=/opt/gwx/apache-activemq-5.8.0
> > >> >> export ACTIVEMQ_BASE=$ACTIVEMQ_BASE
> > >> >>
> > >> >> ${ACTIVEMQ_HOME}/bin/activemq "$*"
> > >> >>
> > >> >> . Activemq starts as console mode thats one question. My other
> issue
> > >> is I
> > >> >> am not sure JMS RMI listner starts. I dont see anything in debug
> for
> > >> that.
> > >> >> and I dont see it in "lsof -i"
> > >> >>
> > >> >>  output:
> > >> >>
> > >> >> INFO: Using default configuration
> > >> >> (you can configure options in one of these file:
> > /etc/default/activemq
> > >> >> /root/.activemqrc)
> > >> >>
> > >> >> INFO: Invoke the following command to create a configuration file
> > >> >> /opt/gwx/apache-activemq-5.8.0/bin/activemq setup [
> > >> /etc/default/activemq
> > >> >> |
> > >> >> /root/.activemqrc ]
> > >> >>
> > >> >> INFO: Using java '/usr/bin/java'
> > >> >> Java Runtime: Sun Microsystems Inc. 1.6.0_22
> > >> >> /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
> > >> >>   Heap sizes: current=1004928k  free=999683k  max=1004928k
> > >> >>     JVM args: -Xms1G -Xmx1G
> > >> >> -Djava.util.logging.config.file=logging.properties
> > >> >>
> > -Dactivemq.classpath=/opt/gwx/apache-activemq-5.8.0/activemq_8100/conf;
> > >> >> -Dactivemq.home=/opt/gwx/apache-activemq-5.8.0
> > >> >> -Dactivemq.base=/opt/gwx/apache-activemq-5.8.0/activemq_8100
> > >> >> -Dactivemq.conf=/opt/gwx/apache-activemq-5.8.0/activemq_8100/conf
> > >> >> -Dactivemq.data=/opt/gwx/apache-activemq-5.8.0/activemq_8100/data
> > >> >> Extensions classpath:
> > >> >>
> > >> >>
> > >> >>
> > >>
> >
> [/opt/gwx/apache-activemq-5.8.0/activemq_8100/lib,/opt/gwx/apache-activemq-5.8.0/lib,/opt/gwx/apache-activemq-5.8.0/activemq_8100/lib/camel,/opt/gwx/apache-activemq-5.8.0/activemq_8100/lib/optional,/opt/gwx/apache-activemq-5.8.0/activemq_8100/lib/web,/opt/gwx/apache-activemq-5.8.0/activemq_8100/lib/extra,/opt/gwx/apache-activemq-5.8.0/lib/camel,/opt/gwx/apache-activemq-5.8.0/lib/optional,/opt/gwx/apache-activemq-5.8.0/lib/web,/opt/gwx/apache-activemq-5.8.0/lib/extra]
> > >> >> ACTIVEMQ_HOME: /opt/gwx/apache-activemq-5.8.0
> > >> >> ACTIVEMQ_BASE: /opt/gwx/apache-activemq-5.8.0/activemq_8100
> > >> >> ACTIVEMQ_CONF: /opt/gwx/apache-activemq-5.8.0/activemq_8100/conf
> > >> >> ACTIVEMQ_DATA: /opt/gwx/apache-activemq-5.8.0/activemq_8100/data
> > >> >> Loading message broker from: xbean:activemq.xml
> > >> >>  INFO | Refreshing
> > >> org.apache.activemq.xbean.XBeanBrokerFactory$1@9506dc4
> > >> >> :
> > >> >> startup date [Mon Jul 22 16:07:07 CDT 2013]; root of context
> > hierarchy
> > >> >>  INFO |
> PListStore:[/opt/gwx/activemqdata/activemq_8100/tmp_storage]
> > >> >> started
> > >> >>  INFO | Using Persistence Adapter:
> > >> >> KahaDBPersistenceAdapter[/opt/gwx/activemqdata/kahadb]
> > >> >>  INFO | KahaDB is version 4
> > >> >>  INFO | Recovering from the journal ...
> > >> >>  INFO | Recovery replayed 53 operations from the journal in 0.03
> > >> seconds.
> > >> >>  INFO | Apache ActiveMQ 5.8.0 (activemq_8100,
> > >> >> ID:RHEL6u2-001-39889-1374527230698-0:1) is starting
> > >> >>  INFO | Listening for connections at:
> > >> >>
> > >> >>
> > >>
> >
> tcp://RHEL6u2-001:61616?maximumConnections=1000&wireformat.maxFrameSize=104857600
> > >> >>  INFO | Connector openwire Started
> > >> >>  INFO | Listening for connections at:
> > >> >>
> > >> >>
> > >>
> >
> amqp://RHEL6u2-001:5600?maximumConnections=1000&wireformat.maxFrameSize=104857600
> > >> >>  INFO | Connector amqp Started
> > >> >>  INFO | Apache ActiveMQ 5.8.0 (activemq_8100,
> > >> >> ID:RHEL6u2-001-39889-1374527230698-0:1) started
> > >> >>  INFO | For help or more information please see:
> > >> >> http://activemq.apache.org
> > >> >>  WARN | Store limit is 102400 mb, whilst the data directory:
> > >> >> /opt/gwx/activemqdata/kahadb only has 3633 mb of usable space
> > >> >> ERROR | Temporary Store limit is 51200 mb, whilst the temporary
> data
> > >> >> directory: /opt/gwx/activemqdata/activemq_8100/tmp_storage only
has
> > >> 3633
> > >> >> mb
> > >> >> of usable space
> > >> >>
> > >> >> and output of "lsof -i"
> > >> >>
> > >> >>
> > >> >>
> > >> >> COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
> > >> >> portreser 1497    root    5u  IPv4   9324      0t0  UDP *:ipp
> > >> >> rpcbind   1530     rpc    6u  IPv4   9580      0t0  UDP *:sunrpc
> > >> >> rpcbind   1530     rpc    7u  IPv4   9585      0t0  UDP *:857
> > >> >> rpcbind   1530     rpc    8u  IPv4   9586      0t0  TCP *:sunrpc
> > >> (LISTEN)
> > >> >> rpcbind   1530     rpc    9u  IPv6   9589      0t0  UDP *:sunrpc
> > >> >> rpcbind   1530     rpc   10u  IPv6   9592      0t0  UDP *:857
> > >> >> rpcbind   1530     rpc   11u  IPv6   9593      0t0  TCP *:sunrpc
> > >> (LISTEN)
> > >> >> rpc.statd 1548 rpcuser    5u  IPv4   9673      0t0  UDP *:876
> > >> >> rpc.statd 1548 rpcuser    8u  IPv4   9679      0t0  UDP *:38088
> > >> >> rpc.statd 1548 rpcuser    9u  IPv4   9683      0t0  TCP *:48389
> > >> (LISTEN)
> > >> >> rpc.statd 1548 rpcuser   10u  IPv6   9687      0t0  UDP *:48350
> > >> >> rpc.statd 1548 rpcuser   11u  IPv6   9691      0t0  TCP *:38848
> > >> (LISTEN)
> > >> >> rpc.rquot 1720    root    3u  IPv4  10401      0t0  UDP *:dec_dlm
> > >> >> rpc.rquot 1720    root    4u  IPv4  10407      0t0  TCP *:qmqp
> > (LISTEN)
> > >> >> rpc.mount 1724    root    7u  IPv4  10432      0t0  UDP *:56727
> > >> >> rpc.mount 1724    root    8u  IPv4  10436      0t0  TCP *:54633
> > >> (LISTEN)
> > >> >> rpc.mount 1724    root    9u  IPv6  10440      0t0  UDP *:60178
> > >> >> rpc.mount 1724    root   10u  IPv6  10444      0t0  TCP *:38415
> > >> (LISTEN)
> > >> >> rpc.mount 1724    root   11u  IPv4  10448      0t0  UDP *:41252
> > >> >> rpc.mount 1724    root   12u  IPv4  10452      0t0  TCP *:44281
> > >> (LISTEN)
> > >> >> rpc.mount 1724    root   13u  IPv6  10456      0t0  UDP *:57606
> > >> >> rpc.mount 1724    root   14u  IPv6  10460      0t0  TCP *:54338
> > >> (LISTEN)
> > >> >> rpc.mount 1724    root   15u  IPv4  10464      0t0  UDP *:36015
> > >> >> rpc.mount 1724    root   16u  IPv4  10468      0t0  TCP *:58202
> > >> (LISTEN)
> > >> >> rpc.mount 1724    root   17u  IPv6  10472      0t0  UDP *:55224
> > >> >> rpc.mount 1724    root   18u  IPv6  10476      0t0  TCP *:45435
> > >> (LISTEN)
> > >> >> sshd      1805    root    3u  IPv4  10711      0t0  TCP *:ssh
> > (LISTEN)
> > >> >> sshd      1805    root    4u  IPv6  10713      0t0  TCP *:ssh
> > (LISTEN)
> > >> >> java      4385    root  129u  IPv6  51682      0t0  TCP *:61616
> > >> (LISTEN)
> > >> >> java      4385    root  131u  IPv6  51683      0t0  TCP
> *:esmmanager
> > >> >> (LISTEN)
> > >> >>
> > >> >> any idea what am I missing here.
> > >> >>
> > >> >> Thanks,
> > >> >> Chirag
> > >> >>
> > >> >>
> > >> >> On Mon, Jul 22, 2013 at 4:01 PM, Chirag Pujara <
> > chiragpujara@gmail.com
> > >> >> >wrote:
> > >> >>
> > >> >> > Hello,
> > >> >> >
> > >> >> > I have created 3 instance for activemq. activemq_8100,
> > activemq_8200,
> > >> >> > activemq_8300.
> > >> >> >
> > >> >> > when I execute follwoing command:
> > >> >> >
> > >> >> > /opt/gwx/apache-activemq-5.8.0/activemq_8100/bin/activemq_8100
> > start
> > >> >> > -Dactivemq.data=/opt/gwx/activemqdata -DopenwirePort=61616
> > >> >> -DamqpPort=5600
> > >> >> > -DrmiPort=8100
> > >> >> >
> > >> >> > it starts activemq as console and not as background process.
did
> I
> > >> miss
> > >> >> > something?
> > >> >> >
> > >> >> > Here is what my config looks like:
> > >> >> >
> > >> >> > <?xml version="1.0" encoding="UTF-8"?><beans xmlns="
> > >> >> > http://www.springframework.org/schema/beans" xmlns:amq="
> > >> >> > http://activemq.apache.org/schema/core" xmlns:xsi="
> > >> >> > http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> > >> >> > http://www.springframework.org/schema/beans
> > >> >> > http://www.springframework.org/schema/beans/spring-beans.xsd
> > >> >> > http://activemq.apache.org/schema/core
> > >> >> > http://activemq.apache.org/schema/core/activemq-core.xsd">
> > >> >> >
> > >> >> >     <!-- Allows us to use system properties as variables
in this
> > >> >> > configuration file -->
> > >> >> >     <bean
> > >> >> >
> > >> >>
> > >>
> >
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> > >> >> >         <property name="locations">
> > >> >> >
> > >> <value>file:${activemq.conf}/credentials.properties</value>
> > >> >> >         </property>
> > >> >> >     </bean>
> > >> >> >
> > >> >> >     <!--
> > >> >> >         The <broker> element is used to configure the
ActiveMQ
> > >> broker.
> > >> >> >     -->
> > >> >> >     <broker xmlns="http://activemq.apache.org/schema/core"
> > >> >> > brokerName="activemq_8100" dataDirectory="${activemq.data}">
> > >> >> >
> > >> >> >
> > >> >> >         <destinationPolicy>
> > >> >> >             <policyMap>
> > >> >> >               <policyEntries>
> > >> >> >
> > >> >> >                 <policyEntry producerFlowControl="true"
> > topic="&gt;">
> > >> >> >                   <pendingMessageLimitStrategy>
> > >> >> >                     <constantPendingMessageLimitStrategy
> > >> limit="1000"/>
> > >> >> >                   </pendingMessageLimitStrategy>
> > >> >> >                 </policyEntry>
> > >> >> >                <policyEntry memoryLimit="1mb"
> > >> producerFlowControl="true"
> > >> >> > queue="&gt;">
> > >> >> >
> > >> >> >                 </policyEntry>
> > >> >> >               </policyEntries>
> > >> >> >             </policyMap>
> > >> >> >         </destinationPolicy>
> > >> >> >
> > >> >> >
> > >> >> >
> > >> >>
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > *Christian Posta*
> > >> > http://www.christianposta.com/blog
> > >> > twitter: @christianposta
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> *Christian Posta*
> > >> http://www.christianposta.com/blog
> > >> twitter: @christianposta
> > >>
> > >
> > >
> >
>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message