导航:首页 > 创造发明 > 创造队列

创造队列

发布时间:2020-12-12 23:51:35

『壹』 怎样才能用代码创建一个消息队列

你在创建抄公有队列,而你的机器不属于任何域。一般工作组安装的计算机只能创建私有队列。
System.Messaging.MessageQueue QueueReceive = new System.Messaging.MessageQueue(@".\Private$\MSMQDemo");
这样应该不会出错。

『贰』 c#中怎样创建消息队列

1..Net使用消息队列,借助windows组件来存储要完成的一系列任务,不用程序使用同一个队列,方便不同程序之间的数据共享和协作……

2.这个在某个方面类似于session(当然还有很多方面不同),相同之处:session可以把信息存储在aspnet_state服务中,网站重新编译或者重新启动网站,session不会丢失(session超时是正常情况,这种情况除外)。

3.win7中安装消息队列组件,详情请网络搜索相关资料。

4.先创建队列,再使用队列,队列中的消息,发送一个多一个,接收一个少一个,先进先出。

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Messaging;
//添加物理文件System.Messaging的引用
namespacetestweb
{
publicpartialclassMSMQtest:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
//CreateNewQueue("MsgQueue");//创建一个消息队列
//sendSimpleMsg();//每一个队列最好只发送和接收同一种格式的信息,不然不好转换格式。
//receiveSimpleMsg();//
//receiveSimpleMsg();
//sendComplexMsg();
//receiveComplexMsg();
MsgModelm=receiveComplexMsg<MsgModel>();
Response.Write(m.ToString());

}
privatevoidsendSimpleMsg()
{
//实例化MessageQueue,并指向现有的一个名称为VideoQueue队列
MessageQueueMQ=newMessageQueue(@".private$MsgQueue");
//MQ.Send("消息测试","测试消息");
System.Messaging.Messagemessage=newSystem.Messaging.Message();
message.Label="消息lable";
message.Body="消息body";
MQ.Send(message);
Response.Write("成功发送消息,"+DateTime.Now+"<br/>");
}
privatevoidreceiveSimpleMsg()
{
MessageQueueMQ=newMessageQueue(@".private$MsgQueue");
//调用MessageQueue的Receive方法接收消息
if(MQ.GetAllMessages().Length>0)
{
System.Messaging.Messagemessage=MQ.Receive(TimeSpan.FromSeconds(5));
if(message!=null)
{
//message.Formatter=newSystem.Messaging.XmlMessageFormatter(newstring[]{"Message.Bussiness.VideoPath,Message"});//消息类型转换
message.Formatter=newSystem.Messaging.XmlMessageFormatter(newType[]{typeof(string)});
Response.Write(string.Format("接收消息成功,lable:{0},body:{1},{2}<br/>",message.Label,message.Body.ToString(),DateTime.Now));
}
}
else
{
Response.Write("没有消息了!<br/>");
}
}
privatevoidsendComplexMsg()
{
//实例化MessageQueue,并指向现有的一个名称为VideoQueue队列
MessageQueueMQ=newMessageQueue(@".private$MsgQueue");
//MQ.Send("消息测试","测试消息");
System.Messaging.Messagemessage=newSystem.Messaging.Message();
message.Label="复杂消息lable";
message.Body=newMsgModel("1","消息1");
MQ.Send(message);
Response.Write("成功发送消息,"+DateTime.Now+"<br/>");
}
privatevoidreceiveComplexMsg()
{
MessageQueueMQ=newMessageQueue(@".private$MsgQueue");
//调用MessageQueue的Receive方法接收消息
if(MQ.GetAllMessages().Length>0)
{
System.Messaging.Messagemessage=MQ.Receive(TimeSpan.FromSeconds(5));
if(message!=null)
{
message.Formatter=newSystem.Messaging.XmlMessageFormatter(newType[]{typeof(MsgModel)});//消息类型转换
MsgModelmsg=(MsgModel)message.Body;
Response.Write(string.Format("接收消息成功,lable:{0},body:{1},{2}<br/>",message.Label,msg,DateTime.Now));
}
}
else
{
Response.Write("没有消息了!<br/>");
}
}
privateTreceiveComplexMsg<T>()
{
MessageQueueMQ=newMessageQueue(@".private$MsgQueue");
//调用MessageQueue的Receive方法接收消息
if(MQ.GetAllMessages().Length>0)
{
System.Messaging.Messagemessage=MQ.Receive(TimeSpan.FromSeconds(5));
if(message!=null)
{
message.Formatter=newSystem.Messaging.XmlMessageFormatter(newType[]{typeof(T)});//消息类型转换
Tmsg=(T)message.Body;
returnmsg;
}
}
returndefault(T);
}
///<summary>
///创建消息队列
///</summary>
///<paramname="name">消息队列名称</param>
///<returns></returns>
publicvoidCreateNewQueue(stringname)
{
if(!System.Messaging.MessageQueue.Exists(".\private$\"+name))//检查是否已经存在同名的消息队列
{

System.Messaging.MessageQueuemq=System.Messaging.MessageQueue.Create(".\private$\"+name);
mq.Label="private$\"+name;
Response.Write("创建成功!<br/>");
}
else
{
//System.Messaging.MessageQueue.Delete(".\private$\"+name);//删除一个消息队列
Response.Write("已经存在<br/>");
}
}
}
[Serializable]
publicclassMsgModel
{
publicstringid{get;set;}
publicstringName{get;set;}
publicMsgModel(){}
publicMsgModel(string_id,string_Name)
{
id=_id;
Name=_Name;
}
publicoverridestringToString()
{
if(string.IsNullOrEmpty(id)||string.IsNullOrEmpty(Name))return"";
returnstring.Format("id--{0},Name--{1}",id,Name);
}
}
}

『叁』 1.创建一个空队列 2.判断创建的队列是否为空 3.提示用户输入队列的长度 4.根据用户

你太可爱了,,真的很简单,但悬赏的财富值太少,懒得做

『肆』 mq不能创建队列是什么原因

在第一台计算机上创建的消息被传递到第二台计算机上的队列 Q1(此队列专被称为远程队列)。 要点: 在本属教程中,您将使用创建了队列管理器 QM_APPLE 和本地队列 Q1 的机器作为接收机器。 您将在发送机器上设置队列管理器和队列

『伍』 问: 60 1.创建一个空队列 2.判断创建的队列是否为空 3.提示用户输入队列的长度 4

(1)如果你是为了熟悉队列(双端队列)这种基础数据结构,我建议你自己实现这个数据结构,例如用数组模拟,或者用双向链表写。
(2)直接用C++中的deque实现。

『陆』 怎样用命令行的方式创建死信队列

|一、WebSphere MQ命令行命令
1、停止队列管理器
endmqm [-z] [([-c | -w | -i | -p] [-r] [-s]) | -x] QMgrName
endmqm mqm_name 使用默认选项停止队列管理器需要等待当前的应用连接完成并断开。
-i 立即停止队列管理器。
-w 需要等待所有的应用停止以后才会真正关闭队列管理器
-p 使用以上参数都无法正常停止队列管理器的情况下可以使用该参数

2、启动队列管理器
strmqm [-z] [-a | -c | -r | -x] [-d none|minimal|all] [-f] [-ns] QMgrName
队列管理器必须在完全停止时才能被启动。

3、创建队列管理器
crtmqm [-z] [-q] [-c Text] [-d DefXmitQ] [-h MaxHandles]
[-md DataPath] [-g ApplicationGroup]
[-t TrigInt] [-u DeadQ] [-x MaxUMsgs] [-lp LogPri] [-ls LogSec]
[-lc | -ll] [-lf LogFileSize] [-ld LogPath] QMgrName

队列管理器名大小写敏感且不支持空字符串,长度为48字节,同一网络中不能有重名。

创建队列管理器的时侯最好创建死信队列用于存放无法发送的信息,保证通道不会因为无法发送信息而被关闭。
crtmqm -u deadq_name mqm_name

4、删除队列管理器
dltmqm [-z] QMgrName
删除队列管理器会完全删除其所拥有的对象和相关信息,并且是不可恢复的。要删除一个队列管理器首先要保证他是停止的。

二、WebSphere MQ Script. (MQSC) commands
WebSphere MQ Script. (MQSC) commands是常常用来管理队列管理器对象的。这些对象包括队列管理器本身,队列,名称列表,通道,客户端通道,监听,服务等。使用runmqsc 队列管理名来启动,可以运行单个的命令,也可以通过命令集的脚本来运行。
本地队列管理器的作用是接收远程或本地的信息流,并将本地队列中的信息流取出以供应用程序使用。在做这些工作之前需要定义相关的队列管理器,队列和通道等,而这些工作是由WebSphere MQ Script. (MQSC) commands来完整的。在Windows及Linux环境下也可以通过WebSphere MQ Explorer来完成。
启动WebSphere MQ Script. (MQSC) :runmqsc [-e] [-v] [-w WaitTime [-x] [-m LocalQMgrName]] [QMgrName]
runmqsc mqm_name。通过命令runmqsc启动队列管理器的命令服务器。WebSphere MQ Explorer也能完成相同的任务。runmqsc的相关命令有三种运行方式,Verify a command without running it,Run a command on a local queue manager,Run a command on a remote queue manager。runmqsc的相关命令在解释的时候都会以大写来解释,比如DEFINE,ALTER,RESET等。但是这些命令并不是大小写敏感的。每行runmqsc命令最长只能到8个字符,可以通过-或者+连接下一行,-是从下一行的第一个字符开始,+是从下一行的第一个非空字符开始。而且所有命令与平台无关。runmqsc的标准输入是键盘,标准输出时屏幕,我们可以通过<,>重定向。例如从脚本输入命令runmqsc </path/filename.in,将结果重定向到文件runmqsc>/path/filename.out。
1、显示队列管理器属性(DISPLAY QMGR):
DISPLAY QMGR显示当前队列管理器的所有属性,也可以使用DISPLAY QMGR 属性名,单独查看当前队列管理器的某个特定属性。
2、 更改队列管理器属性(ALTER QMGR ):
ALTER QMGR 用于更改队列管理器的相关属性,例如 ALTER QMGR MAXHANDS(255),这个命令将默认队列管理器的MAXHANDS由256更改为255。
3、创建本地队列(DEFINE QLOCAL ):
DEFINE QLOCAL Q_LOCAL_NAME,在创建队列的时候可以定义相关属性的值,如果没有定义则使用默认值。也可以全部使用默认值,最后通过ALTER QLOCAL命令来修改相关属性。在同一个队列管理器中不能有同名的队列,可以使用REPLACE关键字重建已有的队列。
4、修改本地队列属性(ALTER QLOCAL):
ALTER QLOCAL Q_LOCAL_NAME NEW_ATTRIBUTE。已经定义了的本地队列可以使用ALTER QLOCAL 命令对其属性进行修改。
5、显示本地队列属性(DISPLAY QLOCAL):
DISPLAY QLOCAL Q_LOCAL_NAME ATTRIBUTE。此命令用于显示本地队列的属性,可以使用默认的显示全部属性,也可以显示指定的属性。
6、复制本地队列(DEFINE QLOCAL NEW LIKE OLD):
DEFINE QLOCAL NEW LIKE OLD。此命令可以创建一个属性与OLD完全一样的本地队列。当然,我们也可以在语句后面指定属性的详细信息,没有指定的则继承OLD的对应属性,指定了的则使用新的属性。
7、清除本地队列中的消息(CLEAR QLOCAL):
CLEAR QLOCAL Q_LOCAL_QUEUE。此命令用于清除本地队列中存储的信息。在清除信息的时候系统不会给出任何提示,而是直接把信息删除。在一下两种情况下不能使用CLEAR QLOCAL,本地队列中存储的有在最近一次队列同步以后未提交的信息,有应用程序打开使用本地此队列。
8、删除本地队列(DELETE QLOCAL):
DELETE QLOCAL Q_LOCAL_QUEUE。此命令用于删除本地队列,当本地队列中存在有没有提交的数据此队列不能删除。如果队列中存在数据,且数据是提交了的,可以使用PURGE关键字删除本地队列。例如DELETE QLOCAL (Q_LOCAL_QUEUE) PURGE,在删除的时候可以指定NOPURGE关键字代替PURGE以保护删除的队列中可能存在的已提交数据。
三、PCF commands
PCF commands允许管理员通过编程的方式将MQ的日常管理任务集成在程序中。包括创建队列,预定义队列,更改队列管理器等, PCF commands与MQSC锁实现的功能是相同。

『柒』 怎么创建MSMQ的传出队列

一、MSMQ介绍和安装消息队列
使用消息队列的优点:稳定、消息优先级、脱机能力以及安全性。
消息队列分为用户创建的队列(专用队列)和系统队列,看下图所示(myQueue为自己创建的消息队列,msmqtriggersnotifiations为通用队列):

对消息队列有了简单的了解后,使用MSMQ进行软件开发需要安装MSMQ,安装完后就该进入实际的开发阶段。具体的安装过程就是在控制面板里“添加/删除程序”下“添加/删除Windows组件”,完成添加就OK。安装完成后就可以通过交互界添加新的消息队列,详细如下图:

出了上面这种交互界面来创建MSMQ外,也可以通过编程来完成,.NET框架里的MessageQueue类下有一静态方法Create,用来完成消息队列的创建,其定义如下:

1//
2// 摘要:
3// 在指定的路径中创建非事务性“消息队列”队列。
4//
5// 参数:
6// path:
7// 要创建的队列的路径。
8//
9// 返回结果:
10// 表示新队列的 System.Messaging.MessageQueue。
11public static MessageQueue Create(string path);
12//
13// 摘要:
14// 在指定的路径中创建事务性或非事务性“消息队列”队列。
15//
16// 参数:
17// transactional:
18// 如果创建事务性队列,为 true;如果创建非事务性队列,则为 false。
19//
20// path:
21// 要创建的队列的路径。
22//
23// 返回结果:
24// 表示新队列的 System.Messaging.MessageQueue。
25public static MessageQueue Create(string path, bool transactional);

实现消息队列的创建简单代码(C#),创建一个名为"myQueue"的非事务性"消息队列",如下:

MessageQueue.Create(@".\private$\myQueue");

二、创建、删除和管理队列
在.NET环境下编写Message Queue程序的前提就是需要先安装MSMQ,本文之前已经作了详细的介绍。要开发MSMQ程序就必须学习一个很重要的类(MessageQueue),该类位于名称空间System.Messageing下。其中有几个常用的方法必须掌握:
--Create方法:创建使用指定路径的新消息队列。
--Delete方法:删除现有的消息队列。
--Existe方法:查看指定消息队列是否存在。
--GetAllMessages()方法:得到队列中的所有消息。
--GetPublicQueues方法:在“消息队列”网络中定位消息队列。
--Peek/BeginPeek方法:查看某个特定队列中的消息队列,但不从该队列中移出消息。
--Receive/BeginReceive方法:检索指定消息队列中最前面的消息并将其从该队列中移除。
--Send方法:发送消息到指定的消息队列。
--Purge方法:清空指定队列的消息。
上述列举的方法在此就不作详细介绍,大家可以通过下面的示例程序中来体会他们各自的功能。
三、发送和序列化消息
MSMQ消息队列中定义的消息由一个主体(body)和若干属性构成。消息的主体可以由文本、二进制构成,根据需要还可以被加密。在MSMQ 中消息的大小不能够超过4MB。发送消息是通过Send方法来完成的,需要一个Message参数。
1、发送消息:
步骤:连接队列-->指定消息格式-->提供要发送的数据(主体)-->调用Send()方法将消息发送出去。详细见后面的示例程序。
2、序列化消息:
消息序列化可以通过.NET Framework附带的三个预定义格式化程序来完成:
-- XMLMessageFormatter对象----MessageQueue组件的默认格式化程序设置。
-- BinaryMessageFormatter对象;
-- ActiveXMessageFormatter对象;
由于后两者格式化后的消息通常不能为人阅读,所以我们经常用到的是XMLMessageFormatter对象。该对象构造方法有三种重载:


1public XmlMessageFormatter();
2public XmlMessageFormatter(string[] targetTypeNames);
3public XmlMessageFormatter(Type[] targetTypes);

如我们后面的示例程序中用到的序列化语句:

1//序列化为字符串
2XmlMessageFormatter formatter = new XmlMessageFormatter(new Type[] { typeof(string) });

『捌』 如何创建队列

包括一些预定义的队列。此外,如果组织需要自定义队列,则您可以创建队列。例如,您可以创建名为“Exchange 发送问题队列”的呈报队列,然后将该类型的事件呈报到该队列。您可以使用以下过程创建队列。创建队列在Service Manager 控制台中,单击“库”。在“库”窗格中,展开“库”,然后单击“队列”。在“任务”窗格中,单击“创建队列”。按照以下步骤完成“创建队列”向导: 在“开始之前”页面上,单击“下一步”。
在“常规”页面上的“队列名称”框中,键入名称。例如,键入 Exchange 发送问题队列。
在“工作项类型”框旁边,单击省略号按钮 (…)。在“选择类”对话框中,选择诸如“事件”之类的类,然后单击“确定”。
在“管理包”列表中,选择要在其中存储新队列定义的未密封的管理包。例如,选择“Service Manager 事件管理配置库”。然后单击“下一步”。
在“条件”页面上,构建要用于为队列筛选工作项的条件,然后单击“下一步”。只有满足指定条件的工作项才会添加到该队列中。
例如,在“可用属性”区域中选择“分类类别”属性,然后单击“添加”。在列表中,选择“电子邮件问题”,然后单击“下一步”。
在“摘要”页面上,单击“创建”以创建队列。
在“完成”页面上,单击“关闭”。
验证队列的创建在Service Manager 控制台中,验证“队列”窗格中是否显示了新队列。在“任务”窗格中,单击“属性”,然后验证队列是否与您定义的一样。

『玖』 java中创建队列Queue的问题

Queue这是个接口,你要new一个它的实现类;例如:
Queue<Integer> queue = new ArrayBlockingQueue<Integer>(100);

『拾』 要创建一个队列 主函数要怎么写

这要看你利用这个类模板来干什么,主函数中只要写出要实现的(或调用其它函数来实现)功能代码即可。

阅读全文

与创造队列相关的资料

热点内容
申请商标到哪个部门 浏览:762
购买无形资产的相关税费可以抵扣吗 浏览:982
商标注册被骗怎么办 浏览:160
朗太书体版权 浏览:268
大学无形资产管理制度 浏览:680
马鞍山向山镇党委书记 浏览:934
服务创造价值疏风 浏览:788
工商登记代名协议 浏览:866
2015年基本公共卫生服务项目试卷 浏览:985
创造营陈卓璇 浏览:905
安徽职称计算机证书查询 浏览:680
卫生院公共卫生服务会议记录 浏览:104
泉州文博知识产权 浏览:348
公共卫生服务培训会议小结 浏览:159
马鞍山揽山别院价格 浏览:56
施工索赔有效期 浏览:153
矛盾纠纷交办单 浏览:447
2010年公需课知识产权法基础与实务答案 浏览:391
侵权责任法第5556条 浏览:369
创造者对吉阿赫利直播 浏览:786