Summing your Accounting Data

Your can learn a lot about your applications by collecting and reviewing your IBM MQ Accounting data. In this post I want to show you an example of how you can get a view of your data when you have masses of it and can’t easily look at each individual record. I’ll show examples using both MO71 and MQSCX to view this data collected by MQEV. You can read this post by opening up the section for the tool you prefer to use.

The first and perhaps most obvious step when you have masses of accounting records is to add up all the records for the same application name. One of the reasons why you might have masses of accounting data records is because short lived applications cut a record at MQDISC time, so even if your accounting interval (ACCTINT) is 30 minutes, you might get 120 records for one application in that time if it connects 4 times each minute.

So here’s how to create a total for each application name.

Total up by Application name (MQSCX)
Issue a command like the following.

DISPLAY ACCTMQI(*) SUM(APPL) -INTVLEND CHANNEL CONNAME USERID ALLPUT

The output will be a list with one row for each unique application name.

N.B. If you’re wondering what the -INTVLEND is doing, I’m just trimming the display to show only what I need. Read this post for more about that.

ACCTMQI(Employee)     USERID(ppadams)  CHANNEL(HR.SVRCONN)   CONNAME(136.40.22.98) ALLPUT(3464)
ACCTMQI(ExtOrder)     USERID(*)        CHANNEL(PROC.SVRCONN) CONNAME(*)            ALLPUT(2927)
ACCTMQI(Invoice)      USERID(*)        CHANNEL(PROC.SVRCONN) CONNAME(*)            ALLPUT(8847)
ACCTMQI(Payroll)      USERID(*)        CHANNEL(PAYROLL.TLS)  CONNAME(136.40.22.98) ALLPUT(8342)
ACCTMQI(Work Order)   USERID(wrkadmin) CHANNEL(WORK.SVRCONN) CONNAME(134.23.19.20) ALLPUT(1218)
ACCTMQI(Work Request) USERID(*)        CHANNEL(WORK.SVRCONN) CONNAME(*)            ALLPUT(3727)
Total up by Application name (MO71)
Open up an MQ Event Accounting MQI List dialog and ensure the button to Sum by Appl is pressed.

The output will be a list with one row for each unique application name. I’ve used Alter List to change the columns I want to see.

Now you may see in the output that some of the fields, for example, the Connection Name field, contain an asterisk (‘*’). This means that the records which were totalled together contain different values. That is, the same application name connected to the queue manager from different IP addresses, i.e. different client machines. This is probably not at all surprising if the same application is used by many different people. As a result, you may well want to see a row per application name and the IP address it connected from. So let’s try that now.

Total up by Application name and IP address (MQSCX)

Issue a command like the following. This has one change from the command we previously issued, in that we have added the CONNAME field to list provided in the SUM attribute.

DISPLAY ACCTMQI(*) SUM(APPL,CONNAME) -INTVLEND CHANNEL CONNAME USERID ALLPUT

The output will be a list with one row for each unique combination of application name and connection name.

ACCTMQI(Employee)     USERID(ppadams)  CHANNEL(HR.SVRCONN)   CONNAME(136.40.22.98)  ALLPUT(3464)
ACCTMQI(ExtOrder)     USERID(djones)   CHANNEL(PROC.SVRCONN) CONNAME(137.46.28.126) ALLPUT(1473)
ACCTMQI(ExtOrder)     USERID(mjsmith)  CHANNEL(PROC.SVRCONN) CONNAME(137.46.28.128) ALLPUT(1454)
ACCTMQI(Invoice)      USERID(pwharper) CHANNEL(PROC.SVRCONN) CONNAME(137.46.28.67)  ALLPUT(2997)
ACCTMQI(Invoice)      USERID(djones)   CHANNEL(PROC.SVRCONN) CONNAME(137.46.28.126) ALLPUT(2949)
ACCTMQI(Invoice)      USERID(mjsmith)  CHANNEL(PROC.SVRCONN) CONNAME(137.46.28.128) ALLPUT(2901)
ACCTMQI(Payroll)      USERID(*)        CHANNEL(PAYROLL.TLS)  CONNAME(136.40.22.98)  ALLPUT(8342)
ACCTMQI(Work Order)   USERID(wrkadmin) CHANNEL(WORK.SVRCONN) CONNAME(134.23.19.20)  ALLPUT(1218)
ACCTMQI(Work Request) USERID(nsmith)   CHANNEL(WORK.SVRCONN) CONNAME(134.23.19.116) ALLPUT(434)
ACCTMQI(Work Request) USERID(khull)    CHANNEL(WORK.SVRCONN) CONNAME(134.23.19.114) ALLPUT(788)
ACCTMQI(Work Request) USERID(sjones)   CHANNEL(WORK.SVRCONN) CONNAME(134.23.19.112) ALLPUT(626)
ACCTMQI(Work Request) USERID(apbolt)   CHANNEL(WORK.SVRCONN) CONNAME(134.23.19.110) ALLPUT(1879)
Total up by Application name and IP address (MO71)
Ensure the button to Sum by Appl is pressed and also the button to Sum by Conname is pressed.

The output will be a list with one row for each unique application name and IP address combination.

We’ve got fewer asterisk (‘*’) characters in the output now, but still one row showing that the records totalled together contained different values for the User Identifier field. This shows that while the same application was being run from the same machine, it was run under different user IDs. To dig into that further we can change our totalling pattern a little further and include the user ID field. To reduce the output for the purposes of showing it here I’ll also just focus in on that one application in the next command.

Total up by Application name, IP address and User ID (MQSCX)

Issue a command like the following. This has two changes from the command we previously issued, in that we have added the USERID field to list provided in the SUM attribute, and we have restricted the application names returned to only those called 'Payroll'.

DISPLAY ACCTMQI('Payroll') SUM(APPL,CONNAME,USERID) -INTVLEND CHANNEL CONNAME USERID ALLPUT

The output will be a list with one row for each unique combination of application name, connection name and user ID.

ACCTMQI(Payroll) USERID(ppadams)  CHANNEL(PAYROLL.TLS) CONNAME(136.40.22.98) ALLPUT(581)
ACCTMQI(Payroll) USERID(payrlate) CHANNEL(PAYROLL.TLS) CONNAME(136.40.22.98) ALLPUT(1681)
ACCTMQI(Payroll) USERID(payradmn) CHANNEL(PAYROLL.TLS) CONNAME(136.40.22.98) ALLPUT(5911)
Total up by Application name, IP address and User ID (MO71)
Ensure the button to Sum by Appl is pressed, the button to Sum by Conname is pressed and the button to Sum by User is pressed. For this screenshot I have also limited the output to only the Payroll application that we are interested in.

The output will be a list with one row for each unique application name, IP address and User ID combination for the Payroll application.

As you can see, totalling up your MQ Accounting data can give you an easy way to see exactly what applications you have running against your queue manager, and where/how they are running, without the need to trawl through masses of individual records.

This concept can be very useful to answer all sorts of other questions. Consider the following options:

SUM() value Meaning
APPL Return a record for each Application
Useful if you want to know what’s doing the most messaging etc
CHANNEL Return a unique record for each Channel
Useful for determining which channels are used the most and perhaps which are no-longer used.
USERID Return a record for each unique Userid
Useful for seeing who is doing what to your Queue Manager
RPRODUCT Sum by remote product identifier
Useful to know what remote clients are connected to your Queue Manager. Are people using JMS, C, .Net Java etc
APPL,RPRODUCT Similar to the one above but now you get a record for each Application/Product combination.
This is useful for seeing which applications are using which clients.
RVERSION Sum by remote version number
Useful to know what version of MQ Client people are using. For example, are people still
using an old out of date product
APPL,RPRODUCT,RVERSION Similar to the one above but now you get a record for each Application/Product Version combination.
This is useful for seeing which applications are which version of client.
CONNAME Sum by remote IP address
Useful to know how many machine are connecting to you and where from.

Of course there are many more combinations and each combination has the potential to show you something interesting.

MQGem Monthly (April 2024)

MQGem Monthly Banner
VOLUME X. – No. 4. TUESDAY, 30 APRIL, 2024  PRICE: FREE

Welcome to the April edition of the MQGem Monthly Newsletter, bringing you company news from MQGem Software, information about the MO71, MQSCX, MQEdit, MQEV, Q, QLOAD and MQMONA products, our IBM MQ training modules, and interesting articles about IBM MQ.

News

If you missed the GSE UK Virtual conference last month where Morag presented a session on IBM MQ Accounting and Statistics, you can read the handout here.

IBM Announced the End of Service for IBM MQ V9.2, effective 30 September 2025. Read the announcement here.

Interesting IBM MQ links

Here are a few links that caught our eye this month.

We share all the above links on our Twitter feed, Facebook page and LinkedIn page so if you don’t want to wait until the end-of-month newsletter, follow us on there.

Upcoming events

There are a number of conference events where IBM MQ will be featured in the coming months.

Upcoming online events

If you’re unable to get to any “in-person” events, then these online webcasts are just what you need.

Product Info

This months highlighted product information is a video showing how to use the very powerful filters provided in MO71.

IBM MQ Latest Maintenance

Make sure you’re on the latest maintenance level of your version of MQ.

Distributed (LTS)

These are the latest Fix Packs at the time of going to press. Check here for the latest versions now, and here for the planned dates for the next ones.

Continuous Delivery (CD)

These are the currently supported CD releases.

z/OS RSUs

These are the latest RSU Sourceids at the time of going to press. Check here for the latest versions now. Support Summary here.

Handy IBM MQ Resources

If you have a question about IBM MQ that you can’t find the answer to, these resources are good places to ask your question.

Contact Information

MQGem hopes the Spring weather is being good to you. We’d love to hear from you. Get in touch by email or follow us on one of our social media channels.

EmailFacebookTwitterLinkedInYouTubeWordPress

← Previous Newsletter

MQGem Monthly (March 2024)

MQGem Monthly Banner
VOLUME X. – No. 3. THURSDAY, 28 MARCH, 2024  PRICE: FREE

Welcome to the March edition of the MQGem Monthly Newsletter, bringing you company news from MQGem Software, information about the MO71, MQSCX, MQEdit, MQEV, Q, QLOAD and MQMONA products, our IBM MQ training modules, and interesting articles about IBM MQ.

News

A new version of MQEdit, V9.3.3, is now available. Read all about the new features in this release here.

Just in case you missed it last month, as it was a very late (post-publish) entry in our newsletter, IBM MQ V9.3.5 was made available at the very end of February.

The GSE UK Virtual conference is coming up in late April. Morag will be presenting one session at that conference. See the session details here and the full conference agenda in the section later on.

Interesting IBM MQ links

Here are a few links that caught our eye this month.

We share all the above links on our Twitter feed, Facebook page and LinkedIn page so if you don’t want to wait until the end-of-month newsletter, follow us on there.

Upcoming events

There are a number of conference events where IBM MQ will be featured in the coming months.

Product Info

This months highlighted product information is a video showing how to use Trace Message in MO71.

IBM MQ Latest Maintenance

Make sure you’re on the latest maintenance level of your version of MQ.

Distributed (LTS)

These are the latest Fix Packs at the time of going to press. Check here for the latest versions now, and here for the planned dates for the next ones.

Continuous Delivery (CD)

These are the currently supported CD releases.

z/OS RSUs

These are the latest RSU Sourceids at the time of going to press. Check here for the latest versions now. Support Summary here.

Contact Information

MQGem wishes you a Happy Easter. We’d love to hear from you. Get in touch by email or follow us on one of our social media channels.

EmailFacebookTwitterLinkedInYouTubeWordPress

← Previous Newsletter

How can I view my message in hex?

In this post we cover how to view your message data as hex using MQGem tools as several of them offer this capability. Open up the twisty for each tool to read how to do this.

If you want to learn how to view your message data formatted, please read this post.

Using MO71

In MO71 you can browse a list of messages on a queue, then you can double click on a message from the list, to view the whole message individually. To view the message data in hex, either:

  • Select the “Hex Message” button on the toolbar
  • From the right-mouse-click context menu choose Display Format → Hex Message

Displaying a message in hex in MO71 – ASCII column on right hand side

If you don’t wish to see the “ASCII column” (that is, the “character representation” of the hex data, it might be EBCDIC or ASCII) to the right of the hex data as is shown in the above screen shot, then you can turn this off using the right-mouse-click context menu and unchecking the Display Format → Ascii Column option.

Using the Q program

In the Q program, you can request that your message data be shown in hex using the -dh flag. For example:

q -m MQG1 -iPRODUCT.DATA -dh

Which will display your message data as follows:

Connecting ...connected to 'MQG1'.
===============================================================================
+00000000 3C50726F 64756374 3E3C4E61 6D653E4D 4F37313C  <Product><Name>MO71<
+00000014 2F4E616D 653E3C57 65627061 67653E68 74747073  /Name><Webpage>https
+00000028 3A2F2F77 77772E6D 7167656D 2E636F6D 2F6D6F37  ://www.mqgem.com/mo7
+0000003C 312E6874 6D6C3C2F 57656270 6167653E 3C506C61  1.html</Webpage><Pla
+00000050 74666F72 6D733E3C 506C6174 666F726D 3E57696E  tforms><Platform>Win
Using MQEdit

In MQEdit you can browse a list of messages on a queue, then you can double click on a message from the list, to view the whole message individually. To view the message data in hex, either:

  • Select the “Hex Message” button on the toolbar
  • From the right-mouse-click context menu choose Display Format → Hex Message

Displaying a message in hex in MQEdit – ASCII column on right hand side



If you don’t have any of these tools, but would like to try any or all of them out, please contact support@mqgem.com and a 1-month trial licence will be sent to you with no obligation to buy. You can download the tools from our website.

I want my view my message formatted

In this post we cover how to view your message data formatted out using MQGem tools as several of them offer this capability. Open up the twisty for each tool to read how to do this.

If you want to learn how to view your message data in hex, please read this post.

Using MO71

In MO71 you can browse a list of messages on a queue, then you can double click on a message from the list, to view the whole message individually. To view the message data formatted, either:

  • Select the “Formatted Message” button on the toolbar
  • From the right-mouse-click context menu choose Display Format → Formatted Message

Displaying a formatted message in MO71 – Low Level detail in use

MO71 will recognise and format out all the built-in MQ formats as well as providing some additional formatting options for XML. Check out all the options in the Display Format menu mentioned above. Some message formats will benefit further from the High/Medium/Low display options. The above screenshot is showing a PCF event message using Low detail.

Using the Q program

In the Q program, you can request that your message data be shown formatted using the -df flag. High/Medium/Low detail can also be chosen by adding 3,2, or 1 respectively onto the end of the flag. For example:

q -m MQG1 -iMY.EVENTS -df1

Which will display your message data as follows:

Connecting ...connected to 'MQG1'.
===============================================================================
[  244 bytes] Message Content
Command      :44 (QMgr Event)
Reason       :2035 (Not authorized)
Parameter Id :2015 (Queue Manager Name)
Value        :'MQG1                                            '
Parameter Id :1020 (Reason Qualifier)
Value        :1 [0x'1'] MQRQ_CONN_NOT_AUTHORIZED
Parameter Id :3025 (User Identifier)
Value        :'mqgusr1     '
Parameter Id :3206 (CSP User Identifier)
Value        :'mqgusr1'
Parameter Id :1 (Application Type)
Value        :11 [0x'B'] MQAT_WINDOWS_NT
Parameter Id :3024 (Application Name)
Value        :'d:\nttools\q.exe            '
------------------------------------------------------ Command (QMgr Event) --

The Q program will recognise and format out all the built-in MQ formats as well as CSV, FIX, JSON, XML and EDIFACT. Some message formats will benefit further from the High/Medium/Low display options. The above output is showing a PCF event message using Low detail.

Using MQEdit

In MQEdit you can browse a list of messages on a queue, then you can double click on a message from the list, to view the whole message individually. To view the message data in hex, either:

  • Select the “Formatted Message” button on the toolbar
  • From the right-mouse-click context menu choose Display Format → Formatted Message

Displaying a formatted message in MQEdit – Low Level detail in use

MQEdit will recognise and format out all the built-in MQ formats as well as CSV, FIX, JSON, XML and EDIFACT. In addition it can format out your own messages formats as well. For more on that read User Formats in MQEdit. Some message formats will benefit further from the High/Medium/Low display options. The above output is showing a PCF event message using Low detail.


If you don’t have any of these tools, but would like to try any or all of them out, please contact support@mqgem.com and a 1-month trial licence will be sent to you with no obligation to buy. You can download the tools from our website.

MQEdit version 9.3.3 is released

MQGem Software is pleased to announce that a new version of MQEdit, our Live Parsing Editor for IBM MQ messages, is now available.

The main features of the release are as follows:-

  • Support for COBOL Over-punched and separate signed fields
    Continuing our support for COBOL types which started with packed-decimal fields, we now add knowledge of two new types into MQEdit as follows:-

    COBOL type MQEdit type
    PIC S9(n) SIGN LEADING opunch(n, signleft)
    PIC S9(n) SIGN TRAILING opunch(n, signright)
    PIC S9(n) SIGN LEADING SEPARATE digits(n, signleft)
    PIC S9(n) SIGN TRAILING SEPARATE digits(n, signright)

    MakeFmt also gets an update to manage the creation of your user format files from COBOL copybooks that use these types. New V1.0.1 is available.

  • Location Dialog updates

    To match MO71, the location dialog has gained a few buttons with useful actions that you need when first setting up your location settings for a queue manager. You can connect and disconnect directly from this dialog, and also view the local INI file and local error log – very helpful if your connection fails and you need to quickly look at the reason.

    New buttons on the location dialog

  • Combined Date/Time fields

    To match MO71, the message list now allows the selection of a column containing the combined Put Date and Put Time, providing a single sortable field. In addition, the format of this field (and the small number of combined Date/Time fields on the queue manager dialog) is under your control from the preferences dialogs. Read more about this in the original MO71 based blog post.

    MO71 Dates Preferences Formatted Time

    MQEdit Preferences, Time Tab allows you control of the Formatted Time

  • Progress Dialogs

    To match MO71, the following actions now have progress dialogs, appearing after a set delay should an operation take a long time. By default they appear after the operation has taken 3 seconds. You can change this in the preferences.

    • Load/Unload operations
    • Move messages
    • Copy messages
    • Delete messages
  • Import Queue Manager connection information

    To match MO71, MQEdit can now import queue manager connection information from a JSON CCDT (it already supported Binary CCDT) and from an MQ Explorer XML export. Read more about this in the original MO71 based blog posts; Import queue managers from a CCDT and Import queue managers from an MQ Explorer export.

    You can also set the network names at import time, and mark any MVS queue managers that are imported from a CCDT since the CCDT does not contain that information.

  • Column Filters

    This feature was initially added in MO71 and we have now also added the same to MQEdit so that you can use it on the Message List. All the details can be found at the aforementioned link.

    Message list column filter on the Priority field. Requested minimum priority of 3, so only 3 out 4 messages are displayed. Count of priorities shown since small set of values.

  • Formatted Put Date and Time

    Date fields in user formats are formatted out for you, and now the MQMD.PutDate and MQMD.PutTime fields get the same treatment.

    [  364 bytes] Message Descriptor (MQMD)
    StrucId     :'MD  '
    Version     :2
    :
    Put Date    :'20231125'           25th November 2023
    Put Time    :'18485976'           18:48:59.76
    :
    [   50 bytes] MEMBER
    NAME        :'Morag Hughson                           '
    JOIN_DATE   :020304               4th March 2002
    LEVEL       :1 (Gold)
    End of structure 'MEMBER' (50 bytes)

The new version can be downloaded from the MQEdit Download Page. Any current licensed users of MQEdit can run the new version on their existing licence. If you don’t have a licence and would like to try out MQEdit then send an email to support@mqgem.com and a 1-month trial licence will be sent to you.

IBM MQ and MQ Appliance News – February 2024

On Thursday February 29th, IBM Hursley released the next in the series of Continuous Delivery releases for IBM MQ V9.3 and the MQ Appliance, IBM MQ V9.3.5.

Downloading IBM MQ Version 9.3.5

Links of interest:-


We’ll collect up any other links about the new release as we find them and put them all here.

MQGem Monthly (February 2024)

MQGem Monthly Banner
VOLUME X. – No. 2. THURSDAY, 29 FEBRUARY, 2024  PRICE: FREE

Welcome to the February edition of the MQGem Monthly Newsletter, bringing you company news from MQGem Software, information about the MO71, MQSCX, MQEdit, MQEV, Q, QLOAD and MQMONA products, our IBM MQ training modules, and interesting articles about IBM MQ.

News

A new version of MO71, V9.3.3, is now available. Read all about the new features in this release here.

UPDATE: Hours after we went to press, IBM MQ V9.3.5 was made available – thought that was worth an update!

Interesting IBM MQ links

Here are a few links that caught our eye this month.

We share all the above links on our Twitter feed, Facebook page and LinkedIn page so if you don’t want to wait until the end-of-month newsletter, follow us on there.

Upcoming events

There are a number of conference events where IBM MQ will be featured in the coming months.

Upcoming online events

If you’re unable to get to any “in-person” events, then these online webcasts are just what you need.

Product Info

This months highlighted product information is a video showing how to simplify the MO71 GUI interface.

IBM MQ Latest Maintenance

Make sure you’re on the latest maintenance level of your version of MQ.

Distributed (LTS)

These are the latest Fix Packs at the time of going to press. Check here for the latest versions now, and here for the planned dates for the next ones.

Continuous Delivery (CD)

These are the currently supported CD releases.

z/OS RSUs

These are the latest RSU Sourceids at the time of going to press. Check here for the latest versions now. Support Summary here.

Contact Information

MQGem wishes you a Happy Leap Day. We’d love to hear from you. Get in touch by email or follow us on one of our social media channels.

EmailFacebookTwitterLinkedInYouTubeWordPress

← Previous Newsletter

Handy command – mqerror

This short blog post is here to share with you a simple cmd file I regularly use on my Windows machine to open my IBM MQ error logs. It saves me some typing and it might save you some too. I will share the complete script at the end.

To use it I either pass a single parameter that is a queue manager name:

mqerror MQG1

and it opens the %MQ_DATA_PATH%\qmgrs\MQG1\errors\AMQERR01.LOG file.

Or I pass it no parameters at all:

mqerror

and it opens the client/system wide %MQ_DATA_PATH%errors\AMQERR01.LOG file.

mqerrors.cmd script file
@REM first parameter into this batch file is the target qmgr
@if "%MQ_DATA_PATH%" EQU "" (
  @call C:\mqm9330\bin\setmqenv -s
)
@if "%1" EQU "" (
 @start notepad %MQ_DATA_PATH%\errors\AMQERR01.LOG
) ELSE (
  @start notepad %MQ_DATA_PATH%\qmgrs\%1\errors\AMQERR01.LOG
)

I hope it saves you a bit of typing. Could be easily adapted for Linux/Unix machines too.

Personalising MO71 context menus

MO71 has a number of ways that you can change the appearance of its menus. One obvious one is Usage Tailoring which allows you to remove menu items, say because you don’t have authority to those commands anyway, so there’s no need to dangle them in front of you, or perhaps because you want to simplify the user interface for some of your users. Usage Tailoring is described in this blog post (along with a few other things).

Usage Tailoring is about removing things from your menus, but you can also add things. Predefined dialogs and user commands both allow you to create new menu items. Normally these new menu items can be found in either the “Predefined Dialogs” submenu, or the “User Commands” submenu, hung off the Commands menu.

Commands context menu showing Predefined dialogs and User Commands submenus

From MO71 V9.3.3 and onwards, the Commands menu is available off all MQ related context menus, not just from a queue manager icon, and so you can easily get at your predefined dialogs and user commands, and so that you can have contextually appropriate predefined dialogs and user commands based on the object types.

Further to that, MO71 V9.3.3 has an additional feature to allow you to position your most commonly used predefined dialogs or user commands on the upper most context menu, or on the Command menu, as an alternative to the normal position. This is set using the field “Context Level” which is available when defining both predefined dialogs and user commands.

The Context Level field

It has three possible values.

  • Normal
    This is the default, and the original position predefined dialogs and user commands were found in. The screen shot above illustrates this position with a submenu for each hung off the Command Menu.
  • Command
    Choosing this value will position your predefined dialog or user command on the Commands menu itself, just below the two previously mentioned submenus (if you have them).

    A user command on the Commands menu

  • Top
    Choosing this value will position your predefined dialog or user command on the upper most part of the context menu, just below the Commands submenu. In some situations, the upper most context menu is the Commands menu, for example when right-clicking on a queue manager icon. In such situations, this will behave the same as if you had chosen “Command”.

    A user command on the upper most context menu

We hope this feature gives you even greater flexibility to put your most frequently used commands and dialogs exactly where you need them for quick access.


The new version can be downloaded from the MO71 Download Page. Any current licensed users of MO71 can run the new version on their existing licence. If you don’t have a licence and would like to try out MO71 then send an email to support@mqgem.com and a 1-month trial licence will be sent to you.