473,721 Members | 2,220 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Inter-process communication

We're looking at running a memory-intensive process for a web site as a
Windows service in isolation of IIS because IIS refuses to consume all of
the available physical RAM. Considering remoting to move data in and out of
this process. Need something that's quick and dirty and easy to implement,
but that's performant and secure at the same time. Any suggestions /
tutorials? Would prefer not to go on the TCP/IP stack (socket) as it is not
very performant, but it certainly is quick and dirty and we might go with it
anyway anyway unless there is another way with shared memory that is as easy
and more performant.

Jon
Apr 5 '07 #1
28 4937
Jon,

I think that you might want to consider shared memory in this case,
assuming you want to be on the same machine as IIS (although, I have to
question why you would want to starve that machine, and not dedicate another
machine to performing this task, as you run the risk of starving IIS of
resources).

Are you passing massive amounts of data between the processes? If so, I
can't say remoting is a good solution. With remoting, you can marshal
objects by reference, or by value. When passing your massive data buffer
across the app domain boundary, if you pass this by value, you are going to
incur a huge cost in passing that buffer across the app domain boundary.

If your buffer has an affinity to the app domain it is in (derives from
MarshalByRefObj ect) then you can make calls into the object from the remote
process, but depending on how many calls you have to make to get managable
chunks of data, this might be too expensive as well.

I think that a better solution would be to have a separate machine which
is dedicated to this task, and then sending off the data buffers (or chunks
of them) to the machine to be processed. You can use MSMQ for this, or
maybe even a file drop, in which case, you have something like BizTalk pick
up the file drop. You could use WCF as well, as there is support for large
message sizes (although there is a message buffer limit there as well which
you have to tweak if the buffer is exceptionally large).

Which comes back to shared memory. If you are determined to stay on the
same machine, then you can have the IIS process write to shared memory, then
signal the service to look at a particular block of shared memory to
process. Of course, you will have to write all the coordination routines
yourself (which is going to be a pain as well).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:ea******** ******@TK2MSFTN GP06.phx.gbl...
We're looking at running a memory-intensive process for a web site as a
Windows service in isolation of IIS because IIS refuses to consume all of
the available physical RAM. Considering remoting to move data in and out
of this process. Need something that's quick and dirty and easy to
implement, but that's performant and secure at the same time. Any
suggestions / tutorials? Would prefer not to go on the TCP/IP stack
(socket) as it is not very performant, but it certainly is quick and dirty
and we might go with it anyway anyway unless there is another way with
shared memory that is as easy and more performant.

Jon


Apr 5 '07 #2
The memory load could be in the range of 1GB, basically hosting indexes
in-memory for fast access to search thousands of large pieces of data. The
server has 4GB, but IIS never uses more than 1GB, which leaves us 3GB
unused, and also makes IIS vulnerable to running out of RAM if we were to
fill up its tiny 1GB rather than isolate the process.

Would love to offload to another server, but the problem there becomes the
bottleneck of 1gb/s network bandwidth which is more reserved for the other
users who are doing heavy SQL Server queries (and SQL Server is not nearly
as performant for what we are indexing, difference is like 10ms vs. 500ms).
We also then deal with TCP/IP packet encapsulation which is a huge
performance hit.

Shared memory is of course ideal. Problem is I asked about shared memory in
the .NET world a year or two ago and was told it's not possible in the C#
world, you have to use remoting. Or, use C++ (and native APIs) which I am
not privvy to, although if someone can point me to P/Invoke API tutorials
that are relevant to shared memory with C#/.NET I'd be curious.

Jon

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c omwrote in
message news:ua******** ******@TK2MSFTN GP05.phx.gbl...
Jon,

I think that you might want to consider shared memory in this case,
assuming you want to be on the same machine as IIS (although, I have to
question why you would want to starve that machine, and not dedicate
another machine to performing this task, as you run the risk of starving
IIS of resources).

Are you passing massive amounts of data between the processes? If so,
I can't say remoting is a good solution. With remoting, you can marshal
objects by reference, or by value. When passing your massive data buffer
across the app domain boundary, if you pass this by value, you are going
to incur a huge cost in passing that buffer across the app domain
boundary.

If your buffer has an affinity to the app domain it is in (derives from
MarshalByRefObj ect) then you can make calls into the object from the
remote process, but depending on how many calls you have to make to get
managable chunks of data, this might be too expensive as well.

I think that a better solution would be to have a separate machine
which is dedicated to this task, and then sending off the data buffers (or
chunks of them) to the machine to be processed. You can use MSMQ for
this, or maybe even a file drop, in which case, you have something like
BizTalk pick up the file drop. You could use WCF as well, as there is
support for large message sizes (although there is a message buffer limit
there as well which you have to tweak if the buffer is exceptionally
large).

Which comes back to shared memory. If you are determined to stay on
the same machine, then you can have the IIS process write to shared
memory, then signal the service to look at a particular block of shared
memory to process. Of course, you will have to write all the coordination
routines yourself (which is going to be a pain as well).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:ea******** ******@TK2MSFTN GP06.phx.gbl...
>We're looking at running a memory-intensive process for a web site as a
Windows service in isolation of IIS because IIS refuses to consume all of
the available physical RAM. Considering remoting to move data in and out
of this process. Need something that's quick and dirty and easy to
implement, but that's performant and secure at the same time. Any
suggestions / tutorials? Would prefer not to go on the TCP/IP stack
(socket) as it is not very performant, but it certainly is quick and
dirty and we might go with it anyway anyway unless there is another way
with shared memory that is as easy and more performant.

Jon



Apr 5 '07 #3
Jon,

I think that shared memory is very viable. You will have to code it
yourself though, and use a fair amount of P/Invoke. First, I recommend
reading the section of the MSDN documentation titled "Managing Memory-Mapped
Files in Win32", located at:

http://msdn2.microsoft.com/en-us/library/ms810613.aspx

For working with MMFs in .NET, I would recommend creating a class that
derives from Stream which would allow you to work with the MMF. Basically,
you would have the file that you are using as the MMF, and then you would
call the MapViewOfFileEx API function and get the pointer at which you can
start writing. You can then take whereever the user wants to read from
/write to the stream and then offset that value by the pointer returned from
MapViewOfFileEx to find the memory location to read from/write to.

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:u0******** ******@TK2MSFTN GP02.phx.gbl...
The memory load could be in the range of 1GB, basically hosting indexes
in-memory for fast access to search thousands of large pieces of data. The
server has 4GB, but IIS never uses more than 1GB, which leaves us 3GB
unused, and also makes IIS vulnerable to running out of RAM if we were to
fill up its tiny 1GB rather than isolate the process.

Would love to offload to another server, but the problem there becomes the
bottleneck of 1gb/s network bandwidth which is more reserved for the other
users who are doing heavy SQL Server queries (and SQL Server is not nearly
as performant for what we are indexing, difference is like 10ms vs.
500ms). We also then deal with TCP/IP packet encapsulation which is a huge
performance hit.

Shared memory is of course ideal. Problem is I asked about shared memory
in the .NET world a year or two ago and was told it's not possible in the
C# world, you have to use remoting. Or, use C++ (and native APIs) which I
am not privvy to, although if someone can point me to P/Invoke API
tutorials that are relevant to shared memory with C#/.NET I'd be curious.

Jon

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c omwrote
in message news:ua******** ******@TK2MSFTN GP05.phx.gbl...
>Jon,

I think that you might want to consider shared memory in this case,
assuming you want to be on the same machine as IIS (although, I have to
question why you would want to starve that machine, and not dedicate
another machine to performing this task, as you run the risk of starving
IIS of resources).

Are you passing massive amounts of data between the processes? If so,
I can't say remoting is a good solution. With remoting, you can marshal
objects by reference, or by value. When passing your massive data buffer
across the app domain boundary, if you pass this by value, you are going
to incur a huge cost in passing that buffer across the app domain
boundary.

If your buffer has an affinity to the app domain it is in (derives
from MarshalByRefObj ect) then you can make calls into the object from the
remote process, but depending on how many calls you have to make to get
managable chunks of data, this might be too expensive as well.

I think that a better solution would be to have a separate machine
which is dedicated to this task, and then sending off the data buffers
(or chunks of them) to the machine to be processed. You can use MSMQ for
this, or maybe even a file drop, in which case, you have something like
BizTalk pick up the file drop. You could use WCF as well, as there is
support for large message sizes (although there is a message buffer limit
there as well which you have to tweak if the buffer is exceptionally
large).

Which comes back to shared memory. If you are determined to stay on
the same machine, then you can have the IIS process write to shared
memory, then signal the service to look at a particular block of shared
memory to process. Of course, you will have to write all the
coordination routines yourself (which is going to be a pain as well).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:ea******* *******@TK2MSFT NGP06.phx.gbl.. .
>>We're looking at running a memory-intensive process for a web site as a
Windows service in isolation of IIS because IIS refuses to consume all
of the available physical RAM. Considering remoting to move data in and
out of this process. Need something that's quick and dirty and easy to
implement, but that's performant and secure at the same time. Any
suggestions / tutorials? Would prefer not to go on the TCP/IP stack
(socket) as it is not very performant, but it certainly is quick and
dirty and we might go with it anyway anyway unless there is another way
with shared memory that is as easy and more performant.

Jon




Apr 5 '07 #4
I forgot to mention that you will have to send signals, through
remoting, or some other technology, to tell the other process that is
sharing the memory mapped file with you when to process, when it's done,
etc, etc.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c omwrote in
message news:u4******** ********@TK2MSF TNGP03.phx.gbl. ..
Jon,

I think that shared memory is very viable. You will have to code it
yourself though, and use a fair amount of P/Invoke. First, I recommend
reading the section of the MSDN documentation titled "Managing
Memory-Mapped Files in Win32", located at:

http://msdn2.microsoft.com/en-us/library/ms810613.aspx

For working with MMFs in .NET, I would recommend creating a class that
derives from Stream which would allow you to work with the MMF.
Basically, you would have the file that you are using as the MMF, and then
you would call the MapViewOfFileEx API function and get the pointer at
which you can start writing. You can then take whereever the user wants
to read from /write to the stream and then offset that value by the
pointer returned from MapViewOfFileEx to find the memory location to read
from/write to.

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:u0******** ******@TK2MSFTN GP02.phx.gbl...
>The memory load could be in the range of 1GB, basically hosting indexes
in-memory for fast access to search thousands of large pieces of data.
The server has 4GB, but IIS never uses more than 1GB, which leaves us 3GB
unused, and also makes IIS vulnerable to running out of RAM if we were to
fill up its tiny 1GB rather than isolate the process.

Would love to offload to another server, but the problem there becomes
the bottleneck of 1gb/s network bandwidth which is more reserved for the
other users who are doing heavy SQL Server queries (and SQL Server is not
nearly as performant for what we are indexing, difference is like 10ms
vs. 500ms). We also then deal with TCP/IP packet encapsulation which is a
huge performance hit.

Shared memory is of course ideal. Problem is I asked about shared memory
in the .NET world a year or two ago and was told it's not possible in the
C# world, you have to use remoting. Or, use C++ (and native APIs) which I
am not privvy to, although if someone can point me to P/Invoke API
tutorials that are relevant to shared memory with C#/.NET I'd be curious.

Jon

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c omwrote
in message news:ua******** ******@TK2MSFTN GP05.phx.gbl...
>>Jon,

I think that you might want to consider shared memory in this case,
assuming you want to be on the same machine as IIS (although, I have to
question why you would want to starve that machine, and not dedicate
another machine to performing this task, as you run the risk of starving
IIS of resources).

Are you passing massive amounts of data between the processes? If
so, I can't say remoting is a good solution. With remoting, you can
marshal objects by reference, or by value. When passing your massive
data buffer across the app domain boundary, if you pass this by value,
you are going to incur a huge cost in passing that buffer across the app
domain boundary.

If your buffer has an affinity to the app domain it is in (derives
from MarshalByRefObj ect) then you can make calls into the object from
the remote process, but depending on how many calls you have to make to
get managable chunks of data, this might be too expensive as well.

I think that a better solution would be to have a separate machine
which is dedicated to this task, and then sending off the data buffers
(or chunks of them) to the machine to be processed. You can use MSMQ
for this, or maybe even a file drop, in which case, you have something
like BizTalk pick up the file drop. You could use WCF as well, as there
is support for large message sizes (although there is a message buffer
limit there as well which you have to tweak if the buffer is
exceptional ly large).

Which comes back to shared memory. If you are determined to stay on
the same machine, then you can have the IIS process write to shared
memory, then signal the service to look at a particular block of shared
memory to process. Of course, you will have to write all the
coordinatio n routines yourself (which is going to be a pain as well).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:ea****** ********@TK2MSF TNGP06.phx.gbl. ..
We're looking at running a memory-intensive process for a web site as a
Windows service in isolation of IIS because IIS refuses to consume all
of the available physical RAM. Considering remoting to move data in and
out of this process. Need something that's quick and dirty and easy to
implement, but that's performant and secure at the same time. Any
suggestion s / tutorials? Would prefer not to go on the TCP/IP stack
(socket) as it is not very performant, but it certainly is quick and
dirty and we might go with it anyway anyway unless there is another way
with shared memory that is as easy and more performant.

Jon




Apr 5 '07 #5
Hello!
You wrote on Thu, 5 Apr 2007 10:32:44 -0700:

JDShared memory is of course ideal. Problem is I asked about shared
JDmemory in the .NET world a year or two ago and was told it's not
JDpossible in the C# world, you have to use remoting. Or, use C++ (and
JDnative APIs) which I am not privvy to, although if someone can point me
JDto P/Invoke API tutorials that are relevant to shared memory with
JDC#/.NET I'd be curious.

Check MsgConnect ( http://www.msgconnect.com ), it seems to fit your
requirements.

With best regards,
Eugene Mayevski
http://www.SecureBlackbox.com - the comprehensive component suite for
network security

Apr 5 '07 #6
What about System.Runtime. Remoting.Channe ls.Ipc (Named Pipes implementation
for .NET 2.0) .. is MMF easier or faster than Ipc?

Jon

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c omwrote in
message news:u4******** ********@TK2MSF TNGP03.phx.gbl. ..
Jon,

I think that shared memory is very viable. You will have to code it
yourself though, and use a fair amount of P/Invoke. First, I recommend
reading the section of the MSDN documentation titled "Managing
Memory-Mapped Files in Win32", located at:

http://msdn2.microsoft.com/en-us/library/ms810613.aspx

For working with MMFs in .NET, I would recommend creating a class that
derives from Stream which would allow you to work with the MMF.
Basically, you would have the file that you are using as the MMF, and then
you would call the MapViewOfFileEx API function and get the pointer at
which you can start writing. You can then take whereever the user wants
to read from /write to the stream and then offset that value by the
pointer returned from MapViewOfFileEx to find the memory location to read
from/write to.

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:u0******** ******@TK2MSFTN GP02.phx.gbl...
>The memory load could be in the range of 1GB, basically hosting indexes
in-memory for fast access to search thousands of large pieces of data.
The server has 4GB, but IIS never uses more than 1GB, which leaves us 3GB
unused, and also makes IIS vulnerable to running out of RAM if we were to
fill up its tiny 1GB rather than isolate the process.

Would love to offload to another server, but the problem there becomes
the bottleneck of 1gb/s network bandwidth which is more reserved for the
other users who are doing heavy SQL Server queries (and SQL Server is not
nearly as performant for what we are indexing, difference is like 10ms
vs. 500ms). We also then deal with TCP/IP packet encapsulation which is a
huge performance hit.

Shared memory is of course ideal. Problem is I asked about shared memory
in the .NET world a year or two ago and was told it's not possible in the
C# world, you have to use remoting. Or, use C++ (and native APIs) which I
am not privvy to, although if someone can point me to P/Invoke API
tutorials that are relevant to shared memory with C#/.NET I'd be curious.

Jon

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard .caspershouse.c omwrote
in message news:ua******** ******@TK2MSFTN GP05.phx.gbl...
>>Jon,

I think that you might want to consider shared memory in this case,
assuming you want to be on the same machine as IIS (although, I have to
question why you would want to starve that machine, and not dedicate
another machine to performing this task, as you run the risk of starving
IIS of resources).

Are you passing massive amounts of data between the processes? If
so, I can't say remoting is a good solution. With remoting, you can
marshal objects by reference, or by value. When passing your massive
data buffer across the app domain boundary, if you pass this by value,
you are going to incur a huge cost in passing that buffer across the app
domain boundary.

If your buffer has an affinity to the app domain it is in (derives
from MarshalByRefObj ect) then you can make calls into the object from
the remote process, but depending on how many calls you have to make to
get managable chunks of data, this might be too expensive as well.

I think that a better solution would be to have a separate machine
which is dedicated to this task, and then sending off the data buffers
(or chunks of them) to the machine to be processed. You can use MSMQ
for this, or maybe even a file drop, in which case, you have something
like BizTalk pick up the file drop. You could use WCF as well, as there
is support for large message sizes (although there is a message buffer
limit there as well which you have to tweak if the buffer is
exceptional ly large).

Which comes back to shared memory. If you are determined to stay on
the same machine, then you can have the IIS process write to shared
memory, then signal the service to look at a particular block of shared
memory to process. Of course, you will have to write all the
coordinatio n routines yourself (which is going to be a pain as well).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:ea****** ********@TK2MSF TNGP06.phx.gbl. ..
We're looking at running a memory-intensive process for a web site as a
Windows service in isolation of IIS because IIS refuses to consume all
of the available physical RAM. Considering remoting to move data in and
out of this process. Need something that's quick and dirty and easy to
implement, but that's performant and secure at the same time. Any
suggestion s / tutorials? Would prefer not to go on the TCP/IP stack
(socket) as it is not very performant, but it certainly is quick and
dirty and we might go with it anyway anyway unless there is another way
with shared memory that is as easy and more performant.

Jon




Apr 5 '07 #7
This looks rediculously straightforward .

http://www.developer.com/net/vb/arti...0926_3520891_2

Jon
Apr 5 '07 #8

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:us******** ******@TK2MSFTN GP04.phx.gbl...
This looks rediculously straightforward .

http://www.developer.com/net/vb/arti...0926_3520891_2
Erm, that's Part 2 of a two-part, rediculously straightforward article.

http://www.developer.com/net/vb/arti...0926_3520891_1
Apr 5 '07 #9
Jon,

You could use that, but in the end, you have to consider how much data
you are going to push across this pipe. MMF might be better if you have to
access that data, but for signalling between the two applications, I would
go with remoting, or, if you can use .NET 3.0 (which is 2.0 with some
additional class libraries) then, you should use WCF.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:%2******** ********@TK2MSF TNGP05.phx.gbl. ..
>
"Jon Davis" <jo*@REMOVE.ME. PLEASE.jondavis .netwrote in message
news:us******** ******@TK2MSFTN GP04.phx.gbl...
>This looks rediculously straightforward .

http://www.developer.com/net/vb/arti...0926_3520891_2

Erm, that's Part 2 of a two-part, rediculously straightforward article.

http://www.developer.com/net/vb/arti...0926_3520891_1

Apr 5 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1434
by: Tertius Cronje | last post by:
Hi All, Q: Is it possible for a thread on SocketServer.ThreadingTCPServer to get the socket info of *other* open thread/s and use that info to send data to the accepting client? I wrote a socketserver using SocketServer.ThreadingTCPServer. A client is connected to the server and expects multiple request/responses. (Not sure about the terminology but the client connects and then stay connected for a while.)
1
2934
by: Thierry Marneffe | last post by:
Hello Suppose a database Db1 with tables tl1 and tl2 and a second database db2 with tables tl3 et tl4. Is it possible to make a join between tables of the two databases ? As for example, Select * from tl1 INNER JOIN tl3 where tl1.Field1 = tl3.Field3
1
1821
by: David M. Karr | last post by:
I've been asked to help debug a complex problem involving inter-frame references, so I just want to understand the elements involved with this. Apparently, there is a page with multiple frames, where one of the frames is a "hidden" frame, and is there just to contain one or more "fields" that are referenced from other frames. Supposedly, if a user "sits" somewhere in this set of pages for several minutes and then tries to do...
13
4147
by: Bern McCarty | last post by:
I have run an experiment to try to learn some things about floating point performance in managed C++. I am using Visual Studio 2003. I was hoping to get a feel for whether or not it would make sense to punch out from managed code to native code (I was using IJW) in order to do some amount of floating point work and, if so, what that certain amount of floating point work was approximately. To attempt to do this I made a program that...
6
16716
by: les | last post by:
Here's a class which uses 2.0 generics to implement an inter-thread message queue in C#. Any number of threads can post and read from the queue simultaneously, and the message object can be any type. There's a test driver at the bottom which demonstrates usage. /*-----------------------------------------------------------------------------------------------------*/ using System; using System.Collections.Generic;
7
4589
by: Sumedh | last post by:
Hi everyone There is a C# project which calls C++/CLI dll to be able to call native C++ including templates. But the C++/CLI code itself also requires the C# dll to get the types. For example: C#: class Test1 {
1
4963
by: Laurence | last post by:
Hi folks, As I konw: database partition (aka data partition?), the database can span multiple machines; table partition, the data within a table can seperate by certain condition. How about inter-partition and intra-partition? Is inter-partition database partition...?
1
4160
by: halekio | last post by:
Hi all, Please bear with me as I've only started programming in C# 2 weeks ago and this is my first contact with OOP. I ran into a situation where I needed to catch an event in an object that had no connection or reference to the object that triggered it. It goes something like this: (not syntactically correct..it's just for the idea)
0
1487
by: rkprasad | last post by:
I am able to create BASIC-CLEAR-INTEGRATED sql http endpoint and consume it on a LAN. But i am not able to consume the created endpoint on inter domain network. If i create endpoint on a server having live IP and try to access it as http://59.165.20.29/SqlHttpEndPointPath?WSDL from a LAN which has its own proxy then I am not able to access it ; and get HTTP 500/HTTP 501 error in the browser. In a different way i create an sql http endpoint...
1
2211
by: rsennat | last post by:
Hi, what is the order of the libraries in the Makefile, for linking inter dependent libraries. i'm getting linker error for the following scenario. I have lib1.a and lib2.a, with which lib1.a needs lib2.a and lib2.a needs lib1.a for linking. How can this be resolved. any thoughts on this would be helpful. thanks rsennat
0
8840
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8730
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9367
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9215
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9131
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9064
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5981
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4484
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
2576
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.